From 56f231f1f6523d7920cf32f033f9bb6f0015550f Mon Sep 17 00:00:00 2001 From: chenxin <chenxin6991@163.com> Date: Wed, 28 Oct 2020 18:05:11 +0800 Subject: [PATCH] Merge commit '8380b3c000a04bd9bf6dfc11fd8337c1563ad265' into master --- Assets/Scripts/TowerDefense/UI/HUD/GameUI.cs | 68 ++++++++++++++++++++++++++++++++++ 1 files changed, 68 insertions(+), 0 deletions(-) diff --git a/Assets/Scripts/TowerDefense/UI/HUD/GameUI.cs b/Assets/Scripts/TowerDefense/UI/HUD/GameUI.cs index d8db3e8..5283f15 100644 --- a/Assets/Scripts/TowerDefense/UI/HUD/GameUI.cs +++ b/Assets/Scripts/TowerDefense/UI/HUD/GameUI.cs @@ -196,6 +196,15 @@ /// </summary> protected int uiCtlProgresss = 0; + /// <summary> + /// 宝石升级特效 + /// </summary> + public GameObject TowerUpgradeEffect; + + /// <summary> + /// 宝石出现特效 + /// </summary> + public GameObject TowerAppearEffect; /// <summary> /// Fires when the <see cref="State"/> changes @@ -1278,6 +1287,18 @@ //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 @@ -1431,11 +1452,33 @@ CancelGhostPlacement(); + PlayAppearEffect(createdTower.transform.position); + // 处理成长骰子,复制骰子等等功能. if (lvl == 0) { ProcessFeatureTower(createdTower); } + } + + /// <summary> + /// 播放宝石出现特效 + /// </summary> + public void PlayAppearEffect(Vector3 worldPos) + { + GameObject obj = Instantiate(TowerAppearEffect); + 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> @@ -2145,11 +2188,36 @@ addTower(createdTower); dragTowerLevel = 0; CancelGhostPlacement(); + PlayToAttackEffect(createdTower.attributeId, createdTower.transform.position); } } } /// <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