using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; //砍树获得装备界面 namespace vnxbqy.UI { public class FunctionEnterWin : Window { [SerializeField] ScrollerController scrollerController; [SerializeField] Transform tzPos; [SerializeField] Transform dfPos; [SerializeField] Button closeButton; [SerializeField] Image upArrow; [SerializeField] Image downArrow; [SerializeField] Transform layout; CutTreeModel cutTreeModel { get { return ModelCenter.Instance.GetModel(); } } #region Built-in bool isOpen = false; //第一次打开会有坐标问题 protected override void BindController() { } protected override void AddListeners() { closeButton.AddListener(CloseClick); } protected override void OnPreOpen() { scrollerController.OnRefreshCell += ScrollerController_OnRefreshCell; if(isOpen) Display(); } protected override void OnAfterOpen() { if (!isOpen) Display(); isOpen = true; } protected override void OnPreClose() { scrollerController.OnRefreshCell -= ScrollerController_OnRefreshCell; } protected override void OnAfterClose() { } #endregion void Display() { int[] showFuncArr; if (cutTreeModel.selectFuncArrNum == 0) { layout.transform.localPosition = dfPos.localPosition; showFuncArr = cutTreeModel.dongfuFuncArr; } else { layout.transform.localPosition = tzPos.localPosition; showFuncArr = cutTreeModel.tiaozhanFuncArr; } //最多显示5个 Dictionary showFuncDic = new Dictionary(); int showFuncNum = 0; scrollerController.Refresh(); scrollerController.m_Scorller.LayoutGroup.childForceExpandWidth = false; for (int i = 0; i < showFuncArr.Length; i++) { //符合等级提前显示 和 功能已开启的 if ((cutTreeModel.funcShowLVDic.ContainsKey(showFuncArr[i]) && PlayerDatas.Instance.baseData.LV >= cutTreeModel.funcShowLVDic[showFuncArr[i]]) || FuncOpen.Instance.IsFuncOpen(showFuncArr[i])) { scrollerController.AddCell(ScrollerDataType.Header, showFuncArr[i]); showFuncDic[showFuncArr[i]] = showFuncNum; showFuncNum++; } } scrollerController.Restart(); //功能引导位置显示 if (NewBieCenter.Instance.inGuiding) { var config = GuideConfig.Get(NewBieCenter.Instance.currentGuide); if (showFuncDic.ContainsKey(config.Condition)) { scrollerController.JumpIndex(showFuncDic[config.Condition]); } } upArrow.SetActive(showFuncNum > 5); downArrow.SetActive(showFuncNum > 5); } private void ScrollerController_OnRefreshCell(ScrollerDataType type, CellView cell) { var _cell = cell as FunctionEnterCell; _cell.Display(cell.index); } } }