using UnityEngine; using System.Collections; using Chronos; /// /// 褪色效果 /// public class FadeIn : MonoBehaviour { /// /// 生命周期 /// public float lifeCycle = 2.0f; /// /// 材质 /// public Material mat; /// /// 颜色 /// //public Color color; public float scale; /// /// 时钟组件 /// public Timeline time; // Use this for initialization void Start () { MeshRenderer meshRenderer = GetComponent();//获取网格渲染组件 if( !meshRenderer || !meshRenderer.material)//不存在网格渲染组件或者不存在材质 { base.enabled = false;//禁用 } else { mat = meshRenderer.material;//获取材质 //ReplaceShader();//更换shader } } // Update is called once per frame void Update () { //float time = Time.time - startTime;//经过的时间 lifeCycle = lifeCycle - time.deltaTime;//剩余时间 if(lifeCycle <= 0)//经过时间大于生命周期 { //Destroy self. Destroy(gameObject); //销毁对象 } else { if(mat)//是否有材质 { if (mat.HasProperty("_Scale"))//材质包含属性"_Scale" { mat.SetFloat("_Scale", scale * lifeCycle);//根据残余时间设置透明度 } } } } /// /// 更换shader /// private void ReplaceShader() { // mat.shader = Shader.Find("AdonShader/DamageFlash");//重新设置shader为Custom/OutlineShader //mat.SetFloat("_Scale", 2);//根据残余时间设置透明度 //if (mat.HasProperty("_Scale"))//材质包含属性"_Scale" //{ // mat.SetFloat("_Scale", scale);//根据残余时间设置透明度 //} //if (mat.HasProperty("_Power")) //{ // mat.SetFloat("_Power", 1); //} } }