//-------------------------------------------------------- // [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); } } }