FadeIn.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. using UnityEngine;
  2. using System.Collections;
  3. using Chronos;
  4. /// <summary>
  5. /// 褪色效果
  6. /// </summary>
  7. public class FadeIn : MonoBehaviour {
  8. /// <summary>
  9. /// 生命周期
  10. /// </summary>
  11. public float lifeCycle = 2.0f;
  12. /// <summary>
  13. /// 材质
  14. /// </summary>
  15. public Material mat;
  16. /// <summary>
  17. /// 颜色
  18. /// </summary>
  19. //public Color color;
  20. public float scale;
  21. /// <summary>
  22. /// 时钟组件
  23. /// </summary>
  24. public Timeline time;
  25. // Use this for initialization
  26. void Start ()
  27. {
  28. MeshRenderer meshRenderer = GetComponent<MeshRenderer>();//获取网格渲染组件
  29. if( !meshRenderer || !meshRenderer.material)//不存在网格渲染组件或者不存在材质
  30. {
  31. base.enabled = false;//禁用
  32. }
  33. else
  34. {
  35. mat = meshRenderer.material;//获取材质
  36. //ReplaceShader();//更换shader
  37. }
  38. }
  39. // Update is called once per frame
  40. void Update ()
  41. {
  42. //float time = Time.time - startTime;//经过的时间
  43. lifeCycle = lifeCycle - time.deltaTime;//剩余时间
  44. if(lifeCycle <= 0)//经过时间大于生命周期
  45. {
  46. //Destroy self.
  47. Destroy(gameObject); //销毁对象
  48. }
  49. else
  50. {
  51. if(mat)//是否有材质
  52. {
  53. if (mat.HasProperty("_Scale"))//材质包含属性"_Scale"
  54. {
  55. mat.SetFloat("_Scale", scale * lifeCycle);//根据残余时间设置透明度
  56. }
  57. }
  58. }
  59. }
  60. /// <summary>
  61. /// 更换shader
  62. /// </summary>
  63. private void ReplaceShader()
  64. {
  65. // mat.shader = Shader.Find("AdonShader/DamageFlash");//重新设置shader为Custom/OutlineShader
  66. //mat.SetFloat("_Scale", 2);//根据残余时间设置透明度
  67. //if (mat.HasProperty("_Scale"))//材质包含属性"_Scale"
  68. //{
  69. // mat.SetFloat("_Scale", scale);//根据残余时间设置透明度
  70. //}
  71. //if (mat.HasProperty("_Power"))
  72. //{
  73. // mat.SetFloat("_Power", 1);
  74. //}
  75. }
  76. }