//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Thursday, September 07, 2017 //-------------------------------------------------------- using Snxxz.UI; using System; using System.Collections; using System.Collections.Generic; using UnityEngine; namespace Snxxz.UI { public class EquipWin : Window { #region 成员变量 [SerializeField] EquipTip equipTip; [SerializeField] BuyEquipTip buyTip; [SerializeField] UnionWarehouseEquipTip unionTip; [SerializeField] GetEquipPathTips getEquipPathTip; [SerializeField] CanvasGroup equipTipAlpha; [SerializeField] CanvasGroup buyTipAlpha; [SerializeField] CanvasGroup unionTipAlpha; [SerializeField] CanvasGroup equipPathAlpha; #endregion ItemTipsModel _itemTipsModel; ItemTipsModel itemTipsModel { get { return _itemTipsModel ?? (_itemTipsModel = ModelCenter.Instance.GetModel()); } } private List TempCreatelist = new List(); #region Built-in protected override void BindController() { } protected override void AddListeners() { } protected override void OnPreOpen() { KnapSackEventMgr.Instance.AddEquipWinTempObjEvent = AddTempCreatelist; KnapSackEventMgr.Instance.HideEquipWinEvent = OnHidePanel; itemTipsModel.SetCurTips(null); itemTipsModel.SetCompareTips(null); equipTipAlpha.alpha = 0; buyTipAlpha.alpha = 0; unionTipAlpha.alpha = 0; equipPathAlpha.alpha = 0; UIShow(); } protected override void OnAfterOpen() { this.transform.SetAsLastSibling(); } protected override void OnPreClose() { for (int i = 0; i < TempCreatelist.Count; i++) { Destroy(TempCreatelist[i]); } equipTip.gameObject.SetActive(false); buyTip.gameObject.SetActive(false); unionTip.gameObject.SetActive(false); getEquipPathTip.gameObject.SetActive(false); TempCreatelist.Clear(); } protected override void OnAfterClose() { } #endregion public void UIShow() { if(itemTipsModel.compareAttrData == null) { if(itemTipsModel.curAttrData != null) { switch (itemTipsModel.curAttrData.ChildType) { case ItemTipChildType.Normal: equipTip.InitModel(itemTipsModel.curAttrData); equipTip.gameObject.SetActive(true); break; case ItemTipChildType.Buy: buyTip.InitModel(itemTipsModel.curAttrData); buyTip.gameObject.SetActive(true); break; case ItemTipChildType.UnionWarehouseDonation: unionTip.InitModel(itemTipsModel.curAttrData); unionTip.gameObject.SetActive(true); break; case ItemTipChildType.UnionWarehouseExchange: unionTip.InitModel(itemTipsModel.curAttrData); unionTip.gameObject.SetActive(true); break; case ItemTipChildType.GetEquipPath: getEquipPathTip.InitModel(itemTipsModel.curAttrData); getEquipPathTip.gameObject.SetActive(true); break; } } } else { if (itemTipsModel.curAttrData != null) { switch (itemTipsModel.curAttrData.ChildType) { case ItemTipChildType.Normal: EquipTip compareTip = CloneEquipUI(this.transform, equipTip.gameObject).GetComponent(); compareTip.InitModel(itemTipsModel.compareAttrData); TempCreatelist.Add(compareTip.gameObject); equipTip.InitModel(itemTipsModel.curAttrData); compareTip.gameObject.SetActive(true); equipTip.gameObject.SetActive(true); break; case ItemTipChildType.Buy: buyTip.InitModel(itemTipsModel.curAttrData); equipTip.InitModel(itemTipsModel.compareAttrData); buyTip.gameObject.SetActive(true); equipTip.gameObject.SetActive(true); break; case ItemTipChildType.UnionWarehouseDonation: unionTip.InitModel(itemTipsModel.curAttrData); equipTip.InitModel(itemTipsModel.compareAttrData); unionTip.gameObject.SetActive(true); equipTip.gameObject.SetActive(true); break; case ItemTipChildType.UnionWarehouseExchange: unionTip.InitModel(itemTipsModel.curAttrData); equipTip.InitModel(itemTipsModel.compareAttrData); unionTip.gameObject.SetActive(true); equipTip.gameObject.SetActive(true); break; case ItemTipChildType.GetEquipPath: getEquipPathTip.InitModel(itemTipsModel.curAttrData); equipTip.InitModel(itemTipsModel.compareAttrData); getEquipPathTip.gameObject.SetActive(true); equipTip.gameObject.SetActive(true); break; } } } } public GameObject CloneEquipUI(Transform parent, GameObject target) { GameObject go = Instantiate(target); go.transform.SetParent(parent); go.transform.localPosition = Vector3.zero; go.transform.localScale = Vector3.one; return go; } public void OnHidePanel() { CloseImmediately(); } private void AddTempCreatelist(GameObject obj) { TempCreatelist.Add(obj); } } }