From e371272a7885723c7b0ef31a20ae5d0fbead1d30 Mon Sep 17 00:00:00 2001 From: wangguan <wangguan@kt007.com> Date: Sat, 26 Dec 2020 16:58:41 +0800 Subject: [PATCH] 12.26第二次 --- Assets/Scripts/TowerDefense/UI/HUD/PlacementTile.cs | 69 ++++++++++++++++++++++++++++++++-- 1 files changed, 65 insertions(+), 4 deletions(-) diff --git a/Assets/Scripts/TowerDefense/UI/HUD/PlacementTile.cs b/Assets/Scripts/TowerDefense/UI/HUD/PlacementTile.cs index c52587d..6a731c6 100644 --- a/Assets/Scripts/TowerDefense/UI/HUD/PlacementTile.cs +++ b/Assets/Scripts/TowerDefense/UI/HUD/PlacementTile.cs @@ -1,7 +1,6 @@ using UnityEngine; using TowerDefense.Level; -using UnityEditor; -using KTGMGemClient; +using Core.Utilities; namespace TowerDefense.UI.HUD { @@ -57,6 +56,7 @@ /// 可以放置的 /// </summary> public Material canPlaceMat; + public Material canNotPlaceMat; /// <summary> /// 放置在当前位置 @@ -65,6 +65,15 @@ //public ParticleSystem myPS;//可以升级的特效 + public ParticleSystem myOpenPS;//购买后的特效 + public ParticleSystem myPutPS;//交换塔位置后的特效 + + public GameObject myDragSelectPS;//推拽时候移动到当前塔的特效 + + /// <summary> + /// 所在的格子坐标 + /// </summary> + public IntVector2 GridPosition { get; set; } /// <summary> /// Update the state of this placement tile @@ -163,15 +172,35 @@ { canPlaceRenderer.enabled = isOn; } + if (myDragSelectPS.activeSelf != isOn) + { + myDragSelectPS.SetActive(isOn); + } + // if (isOn) + // { + // myDragSelectPS.Play(); + // } + // else + // { + // myDragSelectPS.Stop(); + // } + if (isOn && towerName != "") { - SetTowerVirtualshadow(towerName); + //SetTowerVirtualshadow(towerName); + EndlessWaveLineManager.instance.SetWaveLineShow(GridPosition.x, true); } - else if (!isOn && towerVSRenderer.enabled) + else if (!isOn) { towerVSRenderer.enabled = false; + EndlessWaveLineManager.instance.SetWaveLineShow(GridPosition.x, false); } + } + + public void SetWarning(bool isOn) + { + canPlaceRenderer.material = isOn ? canNotPlaceMat : canPlaceMat; } /// <summary> @@ -240,6 +269,14 @@ towerVSRenderer.enabled = false; } + private GameObject buyMesh; + public GameObject BuyMesh + { + get + { + return buyMesh; + } + } /// <summary> /// 根据传入的参数来设置当前Grid对应的显示信息 @@ -251,10 +288,15 @@ switch (newtype) { case PlacementGridType.EGridWaitBuy: + GameObject prefab = Resources.Load<GameObject>("Prefabs/BuyMesh"); + buyMesh = Instantiate(prefab, transform); + //Debug.Log("未开启塔位" + buyMesh); + if (tileRenderer != null && waitBuyMat != null) tileRenderer.sharedMaterial = waitBuyMat; break; case PlacementGridType.EGridOpen: + //Debug.Log("开了塔" + EndlessLevelManager.instanceExists); if (EndlessLevelManager.instanceExists) { tileRenderer.enabled = false; @@ -264,6 +306,12 @@ if (tileRenderer != null && openMat != null) tileRenderer.sharedMaterial = openMat; } + + SetWarning(false); + if (buyMesh != null) + { + Destroy(buyMesh); + } break; case PlacementGridType.EGridDestroyed: if (tileRenderer != null && destroyedMat != null) @@ -271,5 +319,18 @@ break; } } + + public void BuyPs() + { + myOpenPS?.Play(); + AudioSourceManager.Ins.Play(AudioEnum.OpenTowerPlace); + EndlessRandomTower.instance.CheckMoney(); + } + + public void PutPs() + { + myPutPS?.Play(); + } + } } \ No newline at end of file -- Gitblit v1.9.1