| //-------------------------------------------------------- | 
| //    [Author]:           玩个游戏 | 
| //    [  Date ]:           Tuesday, August 22, 2017 | 
| //-------------------------------------------------------- | 
| using UnityEngine; | 
| using System.Collections; | 
| using UnityEngine.UI; | 
|   | 
|   | 
| [RequireComponent(typeof(Image))] | 
| public class SpriteEffect:MonoBehaviour { | 
|   | 
|     [SerializeField] | 
|     Effect m_Effect = Effect.None; | 
|   | 
|     CanvasAddition m_CanvasAddition; | 
|     public CanvasAddition canvasAddition { | 
|         get { | 
|             return this.m_CanvasAddition ?? (this.m_CanvasAddition = this.GetComponentInParent<CanvasAddition>()); | 
|         } | 
|     } | 
|   | 
|     Image m_Image; | 
|     public Image image { | 
|         get { | 
|             return m_Image ?? (m_Image = this.AddMissingComponent<Image>()); | 
|         } | 
|     } | 
|   | 
|     Material m_TwinkleMaterial; | 
|     Material twinleMaterial { | 
|         get { | 
|             return m_TwinkleMaterial??(m_TwinkleMaterial=MaterialUtility.GetDefaultSpriteGrayMaterial()); | 
|         } | 
|     } | 
|   | 
|   | 
|   | 
|     private void OnEnable() { | 
|         if(this.image != null) { | 
|             switch(this.m_Effect) { | 
|                 case Effect.Gray: | 
|                     this.image.material = canvasAddition.spriteGrayMaterial; | 
|                     break; | 
|                 case Effect.Twinkle: | 
|                     this.image.material = this.canvasAddition.spriteGrayMaterial; | 
|                     break; | 
|                 case Effect.None: | 
|                     this.image.material = null; | 
|                     break; | 
|                 default: | 
|                     break; | 
|             } | 
|         } | 
|     } | 
|   | 
|     public enum Effect { | 
|         None, | 
|         Gray, | 
|         Twinkle, | 
|     } | 
|   | 
| } |