ใช้วิธีค่อยๆลดค่า 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 (0, 0, 0, Time.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(0, 0, 0, Time.deltaTime);
if(sRend.color.a <= 0)
Destroy(this);
}
}
#3 สารบัญแชร์โค้ด