1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- using UnityEngine;
- using System.Collections;
- using Chronos;
- /// <summary>
- /// 褪色效果
- /// </summary>
- public class FadeIn : MonoBehaviour {
- /// <summary>
- /// 生命周期
- /// </summary>
- public float lifeCycle = 2.0f;
- /// <summary>
- /// 材质
- /// </summary>
- public Material mat;
- /// <summary>
- /// 颜色
- /// </summary>
- //public Color color;
- public float scale;
- /// <summary>
- /// 时钟组件
- /// </summary>
- public Timeline time;
- // Use this for initialization
- void Start ()
- {
- MeshRenderer meshRenderer = GetComponent<MeshRenderer>();//获取网格渲染组件
- 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);//根据残余时间设置透明度
- }
- }
- }
- }
- /// <summary>
- /// 更换shader
- /// </summary>
- 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);
- //}
- }
- }
|