วันพุธที่ 31 ธันวาคม พ.ศ. 2557

แชร์โค้ด Unity : เปลี่ยนสี background กล้อง

ใช้ฟังชั่น Color.Lerp() ในการเขยิบค่าสีเดิมของแบคกราวกล้อง ให้ค่อยๆกลายไปเป็นสีใหม่ตามค่าสีที่ใส่ตัวแปร changeTo

การใช้งานให้ทำการใส่ค่าสีที่ต้องการเข้าไปในตัวแปร changeTo
อาจจะสั่งเปลี่ยนสีจากสคริปอื่นหรือตั้งเงื่อนไขการเปลี่ยนสีในสคริปนี้เลยก็ได้

using UnityEngine;
using System.Collections;

public class cameraBG : MonoBehaviour 
{
    public Color changeTo;

    void Update () 
    {
        camera.backgroundColor = Color.Lerp(camera.backgroundColorcurrentColor , Time.deltaTime);    
    }
}

แชร์โค้ด Unity : ตัวหนังสือลอยจาง

เป็นโค้ดควบคุมเอฟเฟกตัวหนังสือให้ลอยขึ้นและจางหายไป
ใช้กับตัวคู่กับวัตถุที่แสดงผลตัวอักษรด้วย TextMesh นะครับ

การใช้งานให้ลากวัตถุใส่ในตัวแปรก่อนจากใน Editor 
ใส่ข้อความที่ต้องการให้แสดงใน  text
ใส่ตำแหน่งที่ต้องการแสดงผลใน  popPos
ใส่สีเริ่มต้นใน startColor (สีจะจางลง)

using UnityEngine;
using System.Collections;

public class floatText : MonoBehaviour
{
    public TextMesh tm;
    public Vector3 popPos;
    public string text;
    public Color startColor;


    float timeCount = 0;

    void Start()
    {
        tm.text = text;
        transform.position = popPos;
        tm.color = startColor;
    }

    void Update () 
    {
        transform.position += Vector3.up *Time.deltaTime;
    
        timeCount += Time.deltaTime;

        if(timeCount > 1)
            tm.color -= new Color(000Time.deltaTime*5f);
    }
}

แชร์โค้ด Unity : เอฟเฟกสีจาง

ใช้วิธีค่อยๆลดค่า alpha ของสีที่อยู่ใน component ที่ควบคุมการแสดงผบของวัตถุนั้นอยู่ สำหรับเกม 3D ปกติจะเป็น mesh renderer สามารถดึงค่าสีได้จาก gameObject.renderer.material.color ส่วนในเกม 2D ที่ใช้ SpriteRenderer จะต้องทำการลากตัวนี้ขึ้นมาใส่เข้ามาก่อนถึงจะปรับเปลี่ยนค่าสีได้

โค้ดนี้ผมใช้บ่อยมากครับ ถ้าใครมีโค้ดที่ดีกว่านี้ก็แนะนำด้วยนะครับ :)

โค้ดสำหรับ 3D ที่ใช้ mesh renderer

using UnityEngine;
using System.Collections;

public class fadeOut3D : MonoBehaviour 

{
    void Update () 
    {
        renderer.material.color -= new Color (000Time.deltaTime);

        //พอสีจางจนมองไม่เห็นก็ Destroy วัตถุ
        if (renderer.material.color.a <= 0)
            Destroy (gameObject);
    }

}


วันอังคารที่ 30 ธันวาคม พ.ศ. 2557

แชร์โค้ด Unity : บอลเด้งขอบจอ

ปัญหาใหญ่ของการทำการเด้งแบบนี้คือถ้าเราใช้การเด้งกับ collider ตามปกติ เราจะไม่รู้ว่าขอบจออยู่ตรงไหนเราเอา collider ไปวางไม่ถูกที่เพราะจอของแต่ละเครื่องมันอัตราส่วนหรือขนาดไม่เท่ากัน เลยเลยใช้คำสั่ง Camera.main.ScreenToWorldPoint() เพื่อหาตำแหน่งขอบจอแล้วนำมากำหนดระยะการเด้งของลูกบอล โค้ดอาจจะยาวๆก็ลองแกะกันดูเนาะ โค้ดส่วนนี้ได้เอาไปใช้งานจริงในเกม Kick it Up! บน Android ก็ลองเล่นกันดูได้