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

แชร์โค้ด 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);
    }

}



โค้ดสำหรับ 2D ที่ใช้ SpriteRenderer
ต้องลากออบเจกจากใน Editor ด้วย

using UnityEngine;
using System.Collections;

public class fadeOut3D : MonoBehaviour 

{
    public SpriteRenderer sRend;

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

        if(sRend.color.a <= 0)
            Destroy(this);
    }

}

#3 สารบัญแชร์โค้ด