From 452c75675679c44cc39b04bdb7d330d7c5c14d5c Mon Sep 17 00:00:00 2001 From: wangguan <wangguan@kt007.com> Date: Tue, 29 Dec 2020 10:48:06 +0800 Subject: [PATCH] 增加多SDK支持。常规使用SDKChannel.KTGM 偶哈游的是空SDK --- Assets/Scripts/TowerDefense/UI/EndlessTowerGridOpen.cs | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 55 insertions(+), 2 deletions(-) diff --git a/Assets/Scripts/TowerDefense/UI/EndlessTowerGridOpen.cs b/Assets/Scripts/TowerDefense/UI/EndlessTowerGridOpen.cs index 6b4749b..dacb0fa 100644 --- a/Assets/Scripts/TowerDefense/UI/EndlessTowerGridOpen.cs +++ b/Assets/Scripts/TowerDefense/UI/EndlessTowerGridOpen.cs @@ -5,6 +5,7 @@ using TowerDefense.Towers.Placement; using UnityEngine; using UnityEngine.UI; +using DG.Tweening; /// <summary> /// 当前类用于开启新的TowerPlacementGrid,用于无尽模式。当前类附加在对应的购买开启按钮上。 @@ -12,7 +13,7 @@ public class EndlessTowerGridOpen : MonoBehaviour { // 当前Button对应的Cash Text数据 - public TextMeshProUGUI cashText; + public TextMeshPro cashText; // 当前Button对应的image. public Image mImage; @@ -40,11 +41,57 @@ bWaitOpen = false; } - public void SetBuyBtnInfo(int x, int y, TowerPlacementGridEndless tpg) + /// <summary> + /// Subscribe to the level manager + /// </summary> + protected virtual void OnEnable() + { + if (EndlessLevelManager.instanceExists) + EndlessLevelManager.instance.Currency.currencyChanged += OnCurrencyChanged; + } + + /// <summary> + /// Unsubscribe from the level manager + /// </summary> + protected virtual void OnDisable() + { + if (EndlessLevelManager.instanceExists) + EndlessLevelManager.instance.Currency.currencyChanged -= OnCurrencyChanged; + } + + private void OnCurrencyChanged() + { + CheckCurrencyEnough(); + } + + public void CheckCurrencyEnough() + { + int result; + int.TryParse(cashText.text.ToString(), out result); + int current = EndlessLevelManager.instance.Currency.currentCurrency; + + if (current >= result) + cashText.color = new Color(1f, 1f, 1f); + else + cashText.color = new Color(0.5f, 0.5f, 0.5f); + } + + public void SetBuyBtnInfo(int x, int y, TowerPlacementGridEndless tpg, string cost) { gridX = x; gridY = y; towerGrid = tpg; + + TowerDefense.UI.HUD.PlacementTile tile = TowerPlacementGridEndless.instance.GetOneTile(x, y); + if (tile != null && tile.BuyMesh != null) + { + //cashText.gameObject.SetActive(false); + Transform ts = tile.BuyMesh.transform.Find("CashText"); + cashText = ts.GetComponent<TextMeshPro>(); + } + + cashText.SetText(cost); + } /// <summary> @@ -70,7 +117,13 @@ { float cashToOpen = TowerPlacementGridEndless.GRID_OPENCASH; if (EndlessLevelManager.instance.Currency.currentCurrency < cashToOpen) + { + AudioSourceManager.Ins.Play(AudioEnum.UIDisable); + cashText.color = new Color(218f / 255f, 32f / 255f, 32f / 255f); + DOTween.To(() => cashText.color, (Color v) => cashText.color = v, cashText.color, 0.2f) + .OnComplete(CheckCurrencyEnough); return; + } // 减少Cash并开启相应塔防管理器的兵线 bool bsucc = EndlessLevelManager.instance.Currency.TryPurchase((int)cashToOpen); -- Gitblit v1.9.1