| //--------------------------------------------------------  | 
| //    [Author]:           玩个游戏  | 
| //    [  Date ]:           Monday, August 14, 2017  | 
| //--------------------------------------------------------  | 
| using UnityEngine;  | 
| using System.Collections;  | 
| using UnityEngine.UI;  | 
|   | 
|   | 
| public class RedpointBehaviour : MonoBehaviour  | 
| {  | 
|     [SerializeField]  | 
|     int m_RedpointId;  | 
|     public int redpointId {  | 
|         get {  | 
|             return m_RedpointId;  | 
|         }  | 
|         set {  | 
|             m_RedpointId = value;  | 
|             UpdateRedpoint(value);  | 
|         }  | 
|     }  | 
|   | 
|     [SerializeField]  | 
|     Transform m_SimpleRedpoint;  | 
|     public Transform simpleRedpoint {  | 
|         get {  | 
|             return m_SimpleRedpoint;  | 
|         }  | 
|     }  | 
|     [SerializeField]  | 
|     Transform m_QuantityRedpoint;  | 
|     public Transform quantityRedpoint {  | 
|         get {  | 
|             return m_QuantityRedpoint;  | 
|         }  | 
|     }  | 
|     [SerializeField]  | 
|     Text m_Quantity;  | 
|     public Text quantityText {  | 
|         get {  | 
|             return m_Quantity;  | 
|         }  | 
|     }  | 
|     [SerializeField]  | 
|     Transform m_FullRedpoint;  | 
|   | 
|     [SerializeField]  | 
|     Transform m_GetRewardRedpoint;  | 
|   | 
|     [SerializeField] Transform m_NewRedpoint;  | 
|     bool m_Show = false;  | 
|     public bool show {  | 
|         get { return m_Show; }  | 
|         set {  | 
|             if (m_Show != value)  | 
|             {  | 
|                 m_Show = value;  | 
|                 this.SetActive(m_Show);  | 
|             }  | 
|         }  | 
|     }  | 
|   | 
|     private void Awake()  | 
|     {  | 
|         UpdateRedpoint(redpointId);  | 
|         RedpointCenter.Instance.redpointValueChangeEvent += UpdateRedpoint;  | 
|     }  | 
|   | 
|     private void OnDestroy()  | 
|     {  | 
|         RedpointCenter.Instance.redpointValueChangeEvent -= UpdateRedpoint;  | 
|     }  | 
|   | 
|     void UpdateRedpoint(int _id)  | 
|     {  | 
|         if (_id != redpointId)  | 
|         {  | 
|             return;  | 
|         }  | 
|   | 
|         var state = RedpointCenter.Instance.GetRedpointState(redpointId);  | 
|         if (m_SimpleRedpoint != null)  | 
|         {  | 
|             m_SimpleRedpoint.SetActive(state == RedPointState.Simple);  | 
|         }  | 
|   | 
|         if (m_QuantityRedpoint != null)  | 
|         {  | 
|             m_QuantityRedpoint.SetActive(state == RedPointState.Quantity);  | 
|         }  | 
|   | 
|         if (m_Quantity != null)  | 
|         {  | 
|             m_Quantity.SetActive(state == RedPointState.Quantity);  | 
|         }  | 
|   | 
|         if (m_FullRedpoint != null)  | 
|         {  | 
|             m_FullRedpoint.SetActive(state == RedPointState.Full);  | 
|         }  | 
|   | 
|         if (m_GetRewardRedpoint != null)  | 
|         {  | 
|             m_GetRewardRedpoint.SetActive(state == RedPointState.GetReward);  | 
|         }  | 
|   | 
|         if (state == RedPointState.Quantity && m_Quantity != null)  | 
|         {  | 
|             var count = RedpointCenter.Instance.GetRedpointCount(redpointId);  | 
|             m_Quantity.text = count > 9 ? "N" : count >= 1 ? count.ToString() : "";  | 
|         }  | 
|   | 
|         if (m_NewRedpoint != null)  | 
|         {  | 
|             m_NewRedpoint.SetActive(state == RedPointState.New);  | 
|         }  | 
|     }  | 
|   | 
| }  | 
|   | 
|   | 
|   | 
|   |