From 9af945552ac077706c175c00ad99dc4dfc662e9d Mon Sep 17 00:00:00 2001 From: wangguan <wangguan@kt007.com> Date: Thu, 26 Nov 2020 14:41:19 +0800 Subject: [PATCH] 增加特殊金币掉落 点击飞向左下角 增加技能充满特效 --- Assets/Scripts/TowerDefense/Economy/LootDrop.cs | 56 ++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 46 insertions(+), 10 deletions(-) diff --git a/Assets/Scripts/TowerDefense/Economy/LootDrop.cs b/Assets/Scripts/TowerDefense/Economy/LootDrop.cs index 1fdc00c..cf518aa 100644 --- a/Assets/Scripts/TowerDefense/Economy/LootDrop.cs +++ b/Assets/Scripts/TowerDefense/Economy/LootDrop.cs @@ -95,37 +95,58 @@ { Agent agent = gameObject.GetComponent<Agent>(); + if (agent != null) { + if (EndlessLevelManager.instance.DropRate > 0) + { + //查询 + float rate = Random.Range(0, 100) * 0.01f; + //Debug.Log($"需要处理掉落特效 rate:{rate} EndlessLevelManager.instance.DropRate:{EndlessLevelManager.instance.DropRate}"); + if (rate <= EndlessLevelManager.instance.DropRate) + { + PlayDropCoinPS(agent.position); + } + } + EndlessLevelManager.instance.Currency.AddCurrency(lootDropped); PlayDropGold(lootDropped, agent.position); // 处理掉落 - int tunel = agent.waveLineID + 1; + // int tunel = agent.waveLineID + 1; - List<reward> rewardList = EndlessPortData.GetDropRewardList(EndlessLevelManager.instance.CurrentLevel, - EndlessLevelManager.instance.WaveManager.CurrentWaveIndex + 1, tunel); + // List<reward> rewardList = EndlessPortData.GetDropRewardList(EndlessLevelManager.instance.CurrentLevel, + // EndlessLevelManager.instance.WaveManager.CurrentWaveIndex + 1, tunel); - if (rewardList.Count > 0) - EndlessDropManager.instance.AddDrop(rewardList, gameObject.transform.position); + // if (rewardList.Count > 0) + // EndlessDropManager.instance.AddDrop(rewardList, gameObject.transform.position); } } + } + GameObject dropGoldPrefab; + GameObject mainUI; + Camera camera3D; + /// <summary> + /// Awake is called when the script instance is being loaded. + /// </summary> + void Awake() + { + mainUI = GameObject.Find("MainUI"); + dropGoldPrefab = Resources.Load<GameObject>("Prefabs/DropGold"); + camera3D = GameObject.Find("SceneCamera3D").GetComponent<Camera>(); } private void PlayDropGold(int lootDropped, Vector3 worldPos) { if (lootDropped == 0) return; - GameObject mainUI = GameObject.Find("MainUI"); - GameObject dropGoldPrefab = Resources.Load<GameObject>("Prefabs/DropGold"); GameObject obj = Poolable.TryGetPoolable(dropGoldPrefab); DropGold dropGold = obj.GetComponent<DropGold>(); dropGold.SetDrop(lootDropped); - obj.GetComponent<Transform>().SetParent(GameObject.Find("MainUI").GetComponent<Transform>(), false); - Camera camera = GameObject.Find("SceneCamera3D").GetComponent<Camera>(); - Vector3 screenPos = camera.WorldToScreenPoint(worldPos); + obj.GetComponent<Transform>().SetParent(mainUI.GetComponent<Transform>(), false); + Vector3 screenPos = camera3D.WorldToScreenPoint(worldPos); screenPos.z = 0; obj.transform.position = screenPos; obj.transform.localScale = new Vector3(0.8f, 0.8f, 0.8f); @@ -154,5 +175,20 @@ Poolable.TryPool(obj); }); } + + private void PlayDropCoinPS(Vector3 worldPos) + { + GameObject prefab = Resources.Load<GameObject>("Prefabs/DropCoin"); + GameObject obj = Poolable.TryGetPoolable(prefab); + obj.transform.position = worldPos; + + GameObject prefabIcon = Resources.Load<GameObject>("Prefabs/DropCoinImage"); + GameObject obj1 = Poolable.TryGetPoolable(prefabIcon); + obj1.GetComponent<Transform>().SetParent(mainUI.GetComponent<Transform>(), false); + Vector3 screenPos = camera3D.WorldToScreenPoint(worldPos); + screenPos.z = 0; + obj1.transform.position = screenPos; + obj1.GetComponent<DropCoinImage>().Init(); + } } } \ No newline at end of file -- Gitblit v1.9.1