From bd0ba263761a866ca0d698169d2d83b6a11c35e7 Mon Sep 17 00:00:00 2001 From: CoderM <coderm@qq.com> Date: Thu, 10 Dec 2020 17:04:37 +0800 Subject: [PATCH] CoderM: 增加SDKJSON处理 --- Assets/Scripts/TowerDefense/Level/EndlessDropManager.cs | 124 +++++++++++++++++++++++++++++++++-------- 1 files changed, 99 insertions(+), 25 deletions(-) diff --git a/Assets/Scripts/TowerDefense/Level/EndlessDropManager.cs b/Assets/Scripts/TowerDefense/Level/EndlessDropManager.cs index 4fbb897..7ea8bf3 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); } } } @@ -100,15 +104,15 @@ /// <param name="pos">小怪的世界坐标</param> public void AddDrop(List<reward> list, Vector3 pos) { - for (int i = 0; i < list.Count; ++i) - { - EndlessDrop drop = new EndlessDrop(); - drop.Reward = list[i]; - drop.Id = GetDropId(); - drop.AutoPickupTime = AutoPickupTime; - CreateDrop(drop, pos, list.Count > 0); - AllDropList.Add(drop); - } + // for (int i = 0; i < list.Count; ++i) + // { + // EndlessDrop drop = new EndlessDrop(); + // drop.Reward = list[i]; + // drop.Id = GetDropId(); + // drop.AutoPickupTime = AutoPickupTime; + // CreateDrop(drop, pos, list.Count > 0); + // AllDropList.Add(drop); + // } } /// <summary> @@ -139,29 +143,99 @@ 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, int count) + { + StartCoroutine(CreateIcon(ts, sp, startP, endP, useBezier, count)); + } + + IEnumerator CreateIcon(Transform ts, Sprite sp, Vector3 startP, Vector3 endP, bool useBezier, int count) + { + 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); + if (i == 0) + { + fly.Init(true, count); + } + else + { + fly.Init(false, 0); + } + + fly.SetDestination(sp, startP, endP, useBezier); + yield return new WaitForSeconds(0.01f); + + } + + yield break; + } + /// <summary> /// 调用掉落获得事件 /// </summary> -- Gitblit v1.9.1