From 0d6a2e6d4b9de57a13c2bcb32148e1eb97ef1b1f Mon Sep 17 00:00:00 2001
From: wangguan <wangguan@kt007.com>
Date: Tue, 15 Dec 2020 16:53:34 +0800
Subject: [PATCH] 玩家通关打点位置修改为结算的时候统计

---
 Assets/Scripts/TowerDefense/Level/EndlessDropManager.cs |  120 ++++++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 92 insertions(+), 28 deletions(-)

diff --git a/Assets/Scripts/TowerDefense/Level/EndlessDropManager.cs b/Assets/Scripts/TowerDefense/Level/EndlessDropManager.cs
index cff5332..7ea8bf3 100644
--- a/Assets/Scripts/TowerDefense/Level/EndlessDropManager.cs
+++ b/Assets/Scripts/TowerDefense/Level/EndlessDropManager.cs
@@ -45,7 +45,7 @@
         /// <summary>
         /// 掉落半径
         /// </summary>
-        public float DropRadius { get; set; } = 50f;
+        public float DropRadius { get; set; } = 5f;
 
         public Canvas canvas;
 
@@ -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,24 +143,25 @@
             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);
 
-            // Vector3 screenPos = Camera.main.WorldToScreenPoint(worldPos);
-            // Vector2 targetPos;
-            // RectTransformUtility.ScreenPointToLocalPointInRectangle(canvas.transform as RectTransform, screenPos, canvas.worldCamera, out targetPos);
-            // RectTransform rectTransform =  obj.GetComponent<RectTransform>();
-            // rectTransform.anchoredPosition = pos;
-            // obj.transform.localRotation = Quaternion.identity;
-
-            // Vector3 screenPos = Camera.main.WorldToScreenPoint(worldPos);
-            // screenPos.z = 0;
-            
             obj.transform.position = worldPos;
-            obj.transform.localRotation = Quaternion.identity;
-            obj.transform.localScale = Vector3.one;
+
+            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)
             // {
@@ -164,7 +169,7 @@
             //     Vector3 pos1 = p.normalized * p.magnitude;
             //     Vector3 objPos = obj.transform.position;
             //     objPos.x += pos1.x;
-            //     objPos.y += pos1.y;
+            //     objPos.z += pos1.y;
             //     obj.transform.position = objPos;
             // }
 
@@ -172,6 +177,65 @@
             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