From 8afc9ce1c752c24decad77e0989b367b8f2c4179 Mon Sep 17 00:00:00 2001 From: wangguan <wangguan@kt007.com> Date: Thu, 29 Oct 2020 14:34:52 +0800 Subject: [PATCH] Merge branch 'master' of ssh://172.16.1.52:8091/GemBattle --- Assets/Scripts/TowerDefense/UI/HUD/GameUI.cs | 66 +++++++++++++++++++++++---------- 1 files changed, 46 insertions(+), 20 deletions(-) diff --git a/Assets/Scripts/TowerDefense/UI/HUD/GameUI.cs b/Assets/Scripts/TowerDefense/UI/HUD/GameUI.cs index 5283f15..dbc42c5 100644 --- a/Assets/Scripts/TowerDefense/UI/HUD/GameUI.cs +++ b/Assets/Scripts/TowerDefense/UI/HUD/GameUI.cs @@ -358,7 +358,7 @@ public void delTower(Tower t) { // 删除Tower之前去掉充能条数据. - if( t.bInAttackMode) + if (t.bInAttackMode) t.DisableTowerUICtrl(); // 删除Tower有可能对应的Timer. @@ -609,7 +609,7 @@ towerOld.showTower(false); towerToMove = towerOld; - if( towerOld.bInAttackMode) + if (towerOld.bInAttackMode) { int pro = towerOld.GetTowerUICtrlProgress(); uiCtlProgresss = pro; @@ -865,7 +865,7 @@ if (tw != null) { LevelManager.instance.startWaveLine(m_GridPosition.x, false, tw.attributeId); - + // 顺便设置界面的进展 if (uiCtlProgresss > 0) { @@ -1287,18 +1287,7 @@ //UpgradeSelectedTower(); // 新的代码,合并升级为随机塔防类型. randomUpgradeTower(); - // 在sTower的位置播放升级特效 - GameObject obj = Instantiate(TowerUpgradeEffect); - obj.transform.position = sTower.transform.position; - Vector3 pos = obj.transform.position; - pos.y += 5f; - obj.transform.position = pos; - ParticleSystem ps = obj.GetComponent<ParticleSystem>(); - if (ps == null) - ps = obj.transform.GetChild(0).GetComponent<ParticleSystem>(); - ps.Play(); - Destroy(obj, ps.main.duration); } } else @@ -1331,6 +1320,35 @@ { PlaceGhost(pointer); } + } + + /// <summary> + /// 播放升级特效 + /// </summary> + /// <param name="worldPos"></param> + public void PlayUpgradeEffect(Tower newTower) + { + GameObject effect = TowerUpgradeEffect; + + if (newTower.towerFeature == EFeatureTower.NULL) + { + string path = $"UI/ToBattle_{newTower.attributeId}"; + GameObject prefab = Resources.Load<GameObject>(path); + effect = Instantiate(prefab); + } + + // 在sTower的位置播放升级特效 + GameObject obj = Instantiate(effect); + obj.transform.position = newTower.transform.position; + Vector3 pos = obj.transform.position; + pos.y += 5f; + obj.transform.position = pos; + ParticleSystem ps = obj.GetComponent<ParticleSystem>(); + + if (ps == null) + ps = obj.transform.GetChild(0).GetComponent<ParticleSystem>(); + ps.Play(); + Destroy(obj, ps.main.duration); } /// <summary> @@ -1424,7 +1442,7 @@ /// <exception cref="InvalidOperationException"> /// Throws exception if not in Build State or <see cref="m_CurrentTower"/> is not at a valid position /// </exception> - public void PlaceTower(int lvl = 0, bool opponent = false) + public void PlaceTower(int lvl = 0, bool opponent = false, bool isUpgrade = false) { if (!isBuilding) throw new InvalidOperationException("Trying to place tower when not in a Build Mode"); @@ -1452,6 +1470,14 @@ CancelGhostPlacement(); + if (!opponent) + { + if (!isUpgrade) + PlayAppearEffect(createdTower.transform.position); + else + PlayUpgradeEffect(createdTower); + } + PlayAppearEffect(createdTower.transform.position); // 处理成长骰子,复制骰子等等功能. @@ -1473,10 +1499,10 @@ obj.transform.position = pos; ParticleSystem ps = obj.GetComponent<ParticleSystem>(); - + if (ps == null) ps = obj.transform.GetChild(0).GetComponent<ParticleSystem>(); - + ps.Play(); Destroy(obj, ps.main.duration); } @@ -1743,7 +1769,7 @@ /// 直接在IPlaceArea上随机放置一个Tower。这是随机放置塔防的入口类。这是入口的塔防类。 /// </summary> /// <param name="tow"></param> - public void RandomPlaceTower(Tower tow, int posx = -1, int posy = -1, int lvl = 0) + public void RandomPlaceTower(Tower tow, int posx = -1, int posy = -1, int lvl = 0, bool isUpgrade = false) { // 获取IPlaceArea. if (m_CurrentArea == null) @@ -1804,7 +1830,7 @@ OnSuccessBuyTower(); SetState(State.Building); - PlaceTower(lvl); + PlaceTower(lvl, false, isUpgrade); } } @@ -2212,7 +2238,7 @@ if (ps == null) ps = obj.transform.GetChild(0).GetComponent<ParticleSystem>(); - + ps.Play(); Destroy(obj, ps.main.duration); } -- Gitblit v1.9.1