//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Thursday, February 28, 2019 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; namespace Snxxz.UI { public class EquipStarUpgradeMaterialBehaviour : MonoBehaviour { [SerializeField] int m_Index; [SerializeField] Text m_Hint; [SerializeField] RectTransform m_Empty; [SerializeField] ItemBehaviour m_Item; [SerializeField] Button m_AddMaterial; [SerializeField] Button m_RemoveMaterial; [SerializeField] RectTransform m_Locked; bool isUnLocked = false; EquipStarModel model { get { return ModelCenter.Instance.GetModel(); } } PackModel packModel { get { return ModelCenter.Instance.GetModel(); } } public void Display(bool isUnLocked) { this.isUnLocked = isUnLocked; DisplayBaseInfo(this.isUnLocked); DisplayDynamicInfo(true); m_AddMaterial.SetListener(AddMaterials); m_RemoveMaterial.SetListener(RemoveMaterial); } private void LateUpdate() { DisplayDynamicInfo(false); } private void DisplayBaseInfo(bool isUnLocked) { m_Locked.gameObject.SetActive(!isUnLocked); m_Hint.text = Language.Get("ComposeWin_PutInText_2"); } private void DisplayDynamicInfo(bool force) { if (force || model.GetMaterialLogicStringByIndex(m_Index).dirty) { var material = model.GetMaterialLogicStringByIndex(m_Index).Fetch(); var hasMaterial = !string.IsNullOrEmpty(material); m_Hint.gameObject.SetActive(isUnLocked && !hasMaterial); if (hasMaterial) { m_Empty.gameObject.SetActive(false); var item = packModel.GetItemByGuid(material); m_Item.gameObject.SetActive(true); m_Item.SetItem(item.itemId, 1); } else { m_Item.gameObject.SetActive(false); m_Empty.gameObject.SetActive(true); } m_AddMaterial.gameObject.SetActive(isUnLocked && !hasMaterial); m_RemoveMaterial.gameObject.SetActive(isUnLocked && hasMaterial); } } private void AddMaterials() { model.operateMaterialIndex.value = m_Index; } private void RemoveMaterial() { model.RemoveMaterial(m_Index); } } }