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