New file |
| | |
| | | using System.Collections; |
| | | using System.Collections.Generic; |
| | | using UnityEngine; |
| | | using DG.Tweening; |
| | | using UnityEngine.UI; // DOTween 插件引用 |
| | | using Cysharp.Threading.Tasks; |
| | | using System; |
| | | |
| | | |
| | | public class OneLevelWin : UIBase |
| | | { |
| | | protected Image m_TitleIcon; |
| | | protected FunctionButtonGroup m_Group; |
| | | protected Button m_Left; |
| | | protected Button m_Right; |
| | | protected Button m_Close; |
| | | |
| | | protected Text m_Copper; |
| | | protected Text m_Diamond; |
| | | protected Text m_BindDiamond; |
| | | |
| | | protected RectTransform m_SubWindowContainer; |
| | | public RectTransform subWindowContainer { get { return m_SubWindowContainer; } } |
| | | |
| | | private UIBase subWindow = null; |
| | | |
| | | // init once |
| | | protected override void InitComponent() |
| | | { |
| | | base.InitComponent(); |
| | | |
| | | m_TitleIcon = this.GetComponent<Image>("Pivot/Container_BackGround/Img_Title"); |
| | | m_Group = this.GetComponent<FunctionButtonGroup>("Pivot/Container_Functions"); |
| | | m_Left = this.GetComponent<Button>("Pivot/Container_Buttons/Btn_Left"); |
| | | m_Right = this.GetComponent<Button>("Pivot/Container_Buttons/Btn_Right"); |
| | | m_Close = this.GetComponent<Button>("Pivot/Container_Buttons/Btn_Close"); |
| | | |
| | | m_Copper = this.GetComponent<Text>("Pivot/Container_BackGround/FollowStoreBottom/SilverCountBG/CountText"); |
| | | if (m_Copper != null) |
| | | m_Diamond = this.GetComponent<Text>("Pivot/Container_BackGround/FollowStoreBottom/GoldCountBG/CountText"); |
| | | m_BindDiamond = this.GetComponent<Text>("Pivot/Container_BackGround/FollowStoreBottom/GoldPaperCountBG/CountText"); |
| | | |
| | | m_SubWindowContainer = this.GetComponent<RectTransform>("Pivot/Container_SubWindow"); |
| | | |
| | | var name = this.gameObject.name; |
| | | var infos = WindowConfig.GetWindowFunctionInfos(name); |
| | | foreach (var info in infos) |
| | | { |
| | | var title = Language.Get(info.titleKey); |
| | | if (title.Length == 2) |
| | | { |
| | | title = title.Insert(1, " "); |
| | | } |
| | | m_Group.AddFunction("FunctionButton_Pattern_1", info.order, info.functionId, title, info.redPointId); |
| | | } |
| | | |
| | | m_TitleIcon.SetSprite(WindowConfig.GetTitleIconKey(name)); |
| | | m_TitleIcon.SetNativeSize(); |
| | | |
| | | m_Close.SetListener(CloseWindow); |
| | | m_Left.SetListener(() => { m_Group.TriggerLast(); }); |
| | | m_Right.SetListener(() => { m_Group.TriggerNext(); }); |
| | | } |
| | | |
| | | protected override void OnPreOpen() |
| | | { |
| | | base.OnPreOpen(); |
| | | |
| | | if (m_Copper == null) |
| | | m_Copper = this.GetComponent<Text>("Pivot/Container_BackGround/FollowStoreBottom/SilverCountBG/CountText"); |
| | | m_Diamond = this.GetComponent<Text>("Pivot/Container_BackGround/FollowStoreBottom/GoldCountBG/CountText"); |
| | | m_BindDiamond = this.GetComponent<Text>("Pivot/Container_BackGround/FollowStoreBottom/GoldPaperCountBG/CountText"); |
| | | |
| | | |
| | | UpdateMoney(); |
| | | } |
| | | |
| | | protected override void OnPreClose() |
| | | { |
| | | base.OnPreClose(); |
| | | CloseSubWindows(); |
| | | } |
| | | |
| | | protected override void OnOpen() |
| | | { |
| | | base.OnOpen(); |
| | | |
| | | PlayerDatas.Instance.playerDataRefreshEvent += OnPlayerDataUpdate; |
| | | |
| | | ExecuteNextFrame(() => { |
| | | m_Group.TriggerByOrder(functionOrder); |
| | | m_Group.GotoOrder(functionOrder); |
| | | }); |
| | | |
| | | m_Left.SetActive(m_Group.unLockedCount > 1); |
| | | m_Right.SetActive(m_Group.unLockedCount > 1); |
| | | } |
| | | |
| | | protected virtual void CloseSubWindows() |
| | | { |
| | | if (null != subWindow) |
| | | { |
| | | subWindow.CloseWindow(); |
| | | } |
| | | subWindow = null; |
| | | } |
| | | |
| | | public void SetFunctionListener(int order, Action callBack) |
| | | { |
| | | m_Group.SetFunctionListener(order, callBack); |
| | | } |
| | | |
| | | public void SetFunctionButtonActive(int order, bool isShow) |
| | | { |
| | | m_Group.SetFunctionButtonActive(order, isShow); |
| | | } |
| | | |
| | | public RedPointState GetFunctionButtonRedPointState(int order) |
| | | { |
| | | return m_Group.GetFunctionButtonRedPointState(order); |
| | | } |
| | | |
| | | public void FunctionButtonInvoke(int order) |
| | | { |
| | | m_Group.TriggerByOrder(order); |
| | | m_Group.GotoOrder(order); |
| | | } |
| | | |
| | | private void OnPlayerDataUpdate(PlayerDataType type) |
| | | { |
| | | switch (type) |
| | | { |
| | | case PlayerDataType.Gold: |
| | | case PlayerDataType.GoldPaper: |
| | | case PlayerDataType.Silver: |
| | | case PlayerDataType.ExAttr6: |
| | | case PlayerDataType.default5: |
| | | case PlayerDataType.default6: |
| | | UpdateMoney(); |
| | | break; |
| | | } |
| | | } |
| | | |
| | | void UpdateMoney() |
| | | { |
| | | if (m_Copper == null) |
| | | return; |
| | | m_Copper.text = ItemLogicUtility.Instance.OnChangeCoinsUnit(PlayerDatas.Instance.baseData.allCopper); |
| | | m_Diamond.text = UIHelper.GetMoneyCntEx(1).ToString(); |
| | | if (PlayerDatas.Instance.baseData.bindDiamond > 0) |
| | | m_BindDiamond.text = ItemLogicUtility.Instance.OnChangeCoinsUnit(PlayerDatas.Instance.baseData.bindDiamond); |
| | | else |
| | | m_BindDiamond.text = UIHelper.GetMoneyCntEx(2).ToString(); |
| | | } |
| | | } |