///模型从不透明变成透明直至消失
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class TestClass : MonoBehaviour
{
private float tempTime;
public GameObject StartBtn;
bool _Check = false;
Shader shader;
void Start()
{
shader = Shader.Find("Transparent/Diffuse");
this.GetComponent<Renderer>().material.shader=shader;
StartBtn.GetComponent<Button>().onClick.AddListener(delegate
{
_Check = true;
});
tempTime = 0;
//获取材质本来的属性
this.GetComponent<Renderer>().material.color = new Color
(
this.GetComponent<Renderer>().material.color.r,
this.GetComponent<Renderer>().material.color.g,
this.GetComponent<Renderer>().material.color.b,
//需要改的就是这个属性:Alpha值
this.GetComponent<Renderer>().material.color.a
);
}
void Update()
{
if (_Check)
{
if (tempTime < 1)
{
tempTime = tempTime + Time.deltaTime;
}
if (this.GetComponent<Renderer>().material.color.a <= 1)
{
this.GetComponent<Renderer>().material.color = new Color
(
this.GetComponent<Renderer>().material.color.r,
this.GetComponent<Renderer>().material.color.g,
this.GetComponent<Renderer>().material.color.b,
//减小Alpha值,从1-30秒逐渐淡化 ,数值越大淡化越慢
gameObject.GetComponent<Renderer>().material.color.a - tempTime / 20 * Time.deltaTime
);
}
Destroy(this.gameObject, 20.0f);//40秒后消除
}
}
}