From ca7b565cd73e47a4c83189e35544c892b781cea1 Mon Sep 17 00:00:00 2001 From: wangguan <wangguan@kt007.com> Date: Tue, 22 Dec 2020 10:00:23 +0800 Subject: [PATCH] 修改拖拽 增加未开启塔位增加红色标记 --- Assets/Scripts/TowerDefense/UI/HUD/PlacementTile.cs | 38 ++++++++++++++++++++++++++++++++++++-- 1 files changed, 36 insertions(+), 2 deletions(-) diff --git a/Assets/Scripts/TowerDefense/UI/HUD/PlacementTile.cs b/Assets/Scripts/TowerDefense/UI/HUD/PlacementTile.cs index 222feab..cc83a69 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> /// 放置在当前位置 @@ -67,6 +67,13 @@ public ParticleSystem myOpenPS;//购买后的特效 public ParticleSystem myPutPS;//交换塔位置后的特效 + + public GameObject myDragSelectPS;//推拽时候移动到当前塔的特效 + + /// <summary> + /// 所在的格子坐标 + /// </summary> + public IntVector2 GridPosition { get; set; } /// <summary> /// Update the state of this placement tile @@ -165,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); + EndlessWaveLineManager.instance.SetWaveLineShow(GridPosition.x, true); } else if (!isOn && towerVSRenderer.enabled) { towerVSRenderer.enabled = false; + EndlessWaveLineManager.instance.SetWaveLineShow(GridPosition.x, false); } + } + + public void SetWarning(bool isOn) + { + canPlaceRenderer.material = isOn ? canNotPlaceMat : canPlaceMat; } /// <summary> @@ -267,6 +294,11 @@ if (tileRenderer != null && openMat != null) tileRenderer.sharedMaterial = openMat; } + + if (canPlaceRenderer.material == canNotPlaceMat) + { + SetWarning(false); + } break; case PlacementGridType.EGridDestroyed: if (tileRenderer != null && destroyedMat != null) @@ -278,6 +310,8 @@ public void BuyPs() { myOpenPS?.Play(); + AudioSourceManager.Ins.Play(AudioEnum.OpenTowerPlace); + EndlessRandomTower.instance.CheckMoney(); } public void PutPs() -- Gitblit v1.9.1