代码如下:
public class Fade:MonoBehaviour
{
private bool fading;
//设置物体存活时间,后然后消失
public float lifTime = 1;
//物体原本的颜色
private Color originalCol;
//物体的开始消失的时间
private float deathTime;
//物体消失的速度
private float fadeSpeed;
//物体消失的百分比
private float fadePercent;
//获取物体的材质
public Material mat;
void Start()
{
//获取物体原本颜色
mat = render.Material;
originalCol = mat.Color;
deathTime = Time.time * lifeTime;
StartCoroutine("Fade");
}
//消失的方法
IEnumerator Fade()
{
while(true)
{
yield return new WaitForSeconds(.1f);//等待.1秒
//开始消失
if (fading)
{
//计算消失的比例
fadePercent += Time.deltatime * fadeSpeed;
//开始渐变
mat.Color = Math.Lerp(originalColor , Color.clear , fadePercent);
//当完全消失的时候,就应该销毁物体
if (fadePercent >= 1)
{
Destory(gameObject);
}
}
//如果到了消失时间,就开始消失
if (Time.time > deathTime)
{
fading = true;
}
}
}
}