From fd1ac06475bf155996ac4aed6307eb43f9e04f53 Mon Sep 17 00:00:00 2001 From: wangguan <wangguan@kt007.com> Date: Wed, 11 Nov 2020 14:38:13 +0800 Subject: [PATCH] 替换技能宝石特效位置 --- Assets/Scripts/TowerDefense/Level/EndlessDropManager.cs | 96 ++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 80 insertions(+), 16 deletions(-) diff --git a/Assets/Scripts/TowerDefense/Level/EndlessDropManager.cs b/Assets/Scripts/TowerDefense/Level/EndlessDropManager.cs index 4fbb897..e70bf07 100644 --- a/Assets/Scripts/TowerDefense/Level/EndlessDropManager.cs +++ b/Assets/Scripts/TowerDefense/Level/EndlessDropManager.cs @@ -54,6 +54,7 @@ { AllDropList = new List<EndlessDrop>(); DropObjDic = new Dictionary<int, GameObject>(); + allIconLis = new List<FlyImage>(); } // Update is called once per frame @@ -67,9 +68,12 @@ if (AllDropList[i].ElapsedTime >= AllDropList[i].AutoPickupTime) { - AllDropList[i].IsPickupCompleted = true; - SafelyCallObtainDrop(AllDropList[i]); - RemoveDrop(AllDropList[i].Id); + EndlessDropReward dropReward = DropObjDic[AllDropList[i].Id].GetComponent<EndlessDropReward>(); + dropReward?.OnClick(); + + //AllDropList[i].IsPickupCompleted = true; + //SafelyCallObtainDrop(AllDropList[i]); + //RemoveDrop(AllDropList[i].Id); } } } @@ -139,29 +143,89 @@ dropReward.DropData = drop; dropReward.SetIcon(); - GameObject mainUI = GameObject.Find("MainUI"); + GameObject mainUI = GameObject.Find("BottomUI"); - Transform mainUITransform = mainUI.GetComponent<Transform>(); + Transform mainUITransform = mainUI.transform; + obj.transform.SetParent(mainUITransform, false); + + // Vector3 screenPos = Camera.main.WorldToScreenPoint(worldPos); + // Vector2 pos; + // RectTransformUtility.ScreenPointToLocalPointInRectangle(mainUITransform as RectTransform, screenPos, Camera.main, out pos); + // (obj.transform as RectTransform).anchoredPosition = pos; + obj.GetComponent<Transform>().SetParent(mainUITransform, true); obj.transform.position = worldPos; - obj.transform.localRotation = Quaternion.identity; - obj.transform.localScale = Vector3.one; - if (isRandom) - { - Vector2 p = UnityEngine.Random.insideUnitCircle * DropRadius; - Vector3 pos1 = p.normalized * p.magnitude; - Vector3 objPos = obj.transform.position; - objPos.x += pos1.x; - objPos.z += pos1.y; - obj.transform.position = objPos; - } + Vector3 offect = obj.GetComponent<RectTransform>().anchoredPosition3D; + offect.z = 0; + obj.GetComponent<RectTransform>().anchoredPosition3D = offect; + // obj.transform.localRotation = Quaternion.identity; + // obj.transform.localScale = Vector3.one; + + // if (isRandom) + // { + // Vector2 p = UnityEngine.Random.insideUnitCircle * DropRadius; + // Vector3 pos1 = p.normalized * p.magnitude; + // Vector3 objPos = obj.transform.position; + // objPos.x += pos1.x; + // objPos.z += pos1.y; + // obj.transform.position = objPos; + // } dropReward.PlayParticle(); DropObjDic.Add(drop.Id, obj); } + + List<FlyImage> allIconLis; + public GameObject drapIcon; + + public FlyImage CreateIcon(Transform ts) + { + for (int i = 0; i < allIconLis.Count; i++) + { + if (!allIconLis[i].gameObject.activeSelf) + { + allIconLis[i].gameObject.SetActive(true); + return allIconLis[i]; + } + } + + GameObject obj = Instantiate(drapIcon, ts); + FlyImage fly = obj.GetComponent<FlyImage>(); + allIconLis.Add(fly); + return fly; + + } + + public void FlyIcon(Transform ts, Sprite sp, Vector3 startP, Vector3 endP, bool useBezier) + { + StartCoroutine(CreateIcon(ts, sp, startP, endP, useBezier)); + } + + IEnumerator CreateIcon(Transform ts, Sprite sp, Vector3 startP, Vector3 endP, bool useBezier) + { + FlyImage fly; + + // for (int i = 0; i < 5; i++) + // { + // fly = CreateIcon(ts); + // fly.SetDestination(sp, startP, endP, useBezier); + // } + // yield return new WaitForSeconds(0.2f); + + for (int i = 0; i < 15; i++) + { + fly = CreateIcon(ts); + fly.SetDestination(sp, startP, endP, useBezier); + yield return new WaitForSeconds(0.01f); + + } + + yield break; + } + /// <summary> /// 调用掉落获得事件 /// </summary> -- Gitblit v1.9.1