From 2669e465a82faa0440165f7c38ca69f11135587a Mon Sep 17 00:00:00 2001 From: liuzhiwei <liuzhiwei@qq.com> Date: Wed, 28 Oct 2020 20:27:36 +0800 Subject: [PATCH] Merge branch 'master' of http://172.16.1.52:8090/r/GemBattle into master --- Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs | 69 ++++++++++++++++++++++++++++++++++ 1 files changed, 68 insertions(+), 1 deletions(-) diff --git a/Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs b/Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs index 8eb8e77..0a94bfc 100644 --- a/Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs +++ b/Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs @@ -236,6 +236,16 @@ public event Action GameOverEvent; + /// <summary> + /// 塔升级特效预制体 + /// </summary> + public GameObject TowerUpgradeEffectPrefab; + + /// <summary> + /// 宝石出现特效预制体 + /// </summary> + public GameObject TowerAppearEffectPrefab; + public IPlacementArea selfTowerPlaceArea { get @@ -1188,6 +1198,18 @@ SetState(State.Normal); // 新的代码,合并升级为随机塔防类型. randomUpgradeTower(); + // 在sTower的位置播放升级特效 + GameObject obj = Instantiate(TowerUpgradeEffectPrefab); + 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 @@ -1307,14 +1329,34 @@ // River: 内部缓存数据,用于后期容易找到数据. addTower(createdTower); - CancelGhostPlacement(); + PlayAppearEffect(createdTower.transform.position); // 处理成长骰子,复制骰子等等功能. if (lvl == 0) { ProcessFeatureTower(createdTower); } + } + + /// <summary> + /// 播放宝石出现特效 + /// </summary> + public void PlayAppearEffect(Vector3 worldPos) + { + GameObject obj = Instantiate(TowerAppearEffectPrefab); + obj.transform.position = worldPos; + 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); } protected void ProcessFeatureTower(Tower ctower) @@ -1914,6 +1956,7 @@ // ATTENTION TO FIX:是否应该加入List: addTower(createdTower); + PlayToAttackEffect(createdTower.attributeId, createdTower.transform.position); dragTowerLevel = 0; CancelGhostPlacement(); } @@ -1921,6 +1964,30 @@ } /// <summary> + /// 播放宝石上阵特效 + /// </summary> + /// <param name="attributeId">101 火,105 水,109 木</param> + /// <param name="worldPos">世界坐标</param> + public void PlayToAttackEffect(int attributeId, Vector3 worldPos) + { + string path = $"UI/ToBattle_{attributeId}"; + GameObject prefab = Resources.Load<GameObject>(path); + GameObject obj = Instantiate(prefab); + obj.transform.position = worldPos; + 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> /// Raycast onto tower placement areas /// </summary> /// <param name="pointer">The pointer we're testing</param> -- Gitblit v1.9.1