From afc8dfa9a8bba205919489b6a348c6db812b4468 Mon Sep 17 00:00:00 2001
From: wangguan <wangguan@kt007.com>
Date: Sat, 05 Dec 2020 14:28:59 +0800
Subject: [PATCH] 修改排行榜,展示动效

---
 Assets/Scripts/UI/FinalPanel/FinalPanel.cs |   94 +++++++++++++++++++++--------------------------
 1 files changed, 42 insertions(+), 52 deletions(-)

diff --git a/Assets/Scripts/UI/FinalPanel/FinalPanel.cs b/Assets/Scripts/UI/FinalPanel/FinalPanel.cs
index 66d5534..a373cbd 100644
--- a/Assets/Scripts/UI/FinalPanel/FinalPanel.cs
+++ b/Assets/Scripts/UI/FinalPanel/FinalPanel.cs
@@ -69,6 +69,8 @@
 
     TextMeshProUGUI rankUpbj;
     GameObject newPlayerImage;//新用户提示
+    GameObject httpCountDownPanel;
+
     /// <summary>
     /// 入口函数
     /// </summary>
@@ -78,6 +80,7 @@
     {
         _waveInfo = waveInfo;
         _myScore = myScore;
+        isFirstStart = true;//首次启动下载到数据执行动效
         _data = new SmallList<FinalPanelItemData>();
         Debug.Log($"_myScore:{_myScore}  _waveInfo:{_waveInfo}");
 
@@ -125,9 +128,9 @@
         _limitUp = 100;
         finalHttp.Init(GetHttpData, _limit);//重置状态,设置回调和拉取的所有数据
 
-        itemFirst = transform.Find("ItemPanel/FinalPanelItemFirst").GetComponent<FinalPanelItem>();
-        itemSecond = transform.Find("ItemPanel/FinalPanelItemSecond").GetComponent<FinalPanelItem>();
-        itemThird = transform.Find("ItemPanel/FinalPanelItemThird").GetComponent<FinalPanelItem>();
+        itemFirst = transform.Find("ItemPanel/ItemMask/FinalPanelItemFirst").GetComponent<FinalPanelItem>();
+        itemSecond = transform.Find("ItemPanel/ItemMask/FinalPanelItemSecond").GetComponent<FinalPanelItem>();
+        itemThird = transform.Find("ItemPanel/ItemMask/FinalPanelItemThird").GetComponent<FinalPanelItem>();
 
         httpCountDownPanel = transform.Find("HttpCountDownPanel").gameObject;
         httpCountDownPanel.SetActive(false);
@@ -172,62 +175,15 @@
 
     private void StartHttp()
     {
-        //OpenHttpCountDown(true);
         Debug.Log($"_myScore:{_myScore}  _waveInfo:{_waveInfo}");
         finalHttp.SendPost(playerNickName, _myScore, 1, _waveInfo);
-    }
-
-    #region 联网倒计时判断
-    bool isSending;
-    int sendCount;
-    GameObject httpCountDownPanel;
-    private void OpenHttpCountDown(bool isOn)
-    {
-        if (isOn)
-        {
-            isSending = true;
-            sendCount = 0;
-            StartCoroutine("HttpCountDown");
-        }
-        else
-        {
-            isSending = false;
-            StopCoroutine("HttpCountDown");
-        }
-    }
-    IEnumerator HttpCountDown()
-    {
-        while (isSending)
-        {
-            yield return new WaitForSeconds(1.0f);
-            sendCount++;
-            Debug.Log($"等待了{sendCount}秒");
-            if (sendCount > 10)
-            {
-                Debug.Log("等了10秒了,连接失败");
-                if (!httpCountDownPanel.activeSelf) httpCountDownPanel.SetActive(true);
-
-                isSending = false;
-
-                break;
-            }
-        }
-    }
-    #endregion
-
-
-    private void Close()
-    {
-        gameObject.SetActive(false);
-        GameConfig.NextSceneName = endlessGameScene;
-        SceneManager.LoadScene(loadingScene);
     }
 
     private void GetHttpData(List<HttpGetInfo> allHttpGetInfoLis, int myrank, HttpGetInfo mydataHttpInfo)
     {
         scroller = transform.Find("Scroller").GetComponent<EnhancedScroller>();
         scroller.Delegate = this;
-
+        playPSItem = new List<FinalPanelItem>();
         RefreshHttpData(allHttpGetInfoLis, myrank, mydataHttpInfo);
 
         if (allHttpGetInfoLis != null)
@@ -238,6 +194,7 @@
         }
 
         PlayDoTween();
+        isFirstStart = false;
     }
 
     private void PlayDoTween()
@@ -309,8 +266,18 @@
         if (_data.Count > 0)
         {
             scrollerCanvasGroup.alpha = 1;
-            itemCanvasGroup.alpha = 1;
+            Debug.Log("开始展示排行榜");
+        }
+        itemCanvasGroup.alpha = 1;
+        float duration = 0.1f;
+        for (int i = 0; i < playPSItem.Count; i++)
+        {
+            playPSItem[i].PlayDoTween(duration);
+            yield return new WaitForSeconds(duration);
+        }
 
+        if (playPSItem.Count > 0)
+        {
             image_HScore.SetActive(true);
         }
 
@@ -427,6 +394,8 @@
     }
 
     List<HttpGetInfo> _allHttpGetInfoLis;
+    List<FinalPanelItem> playPSItem;//特效list
+    bool isFirstStart;
     private void RefreshHttpData(List<HttpGetInfo> allHttpGetInfoLis, int myrank, HttpGetInfo mydataHttpInfo)
     {
         _allHttpGetInfoLis = allHttpGetInfoLis;
@@ -469,6 +438,9 @@
                 data.index = 1;
                 itemFirst.gameObject.SetActive(true);
                 itemFirst.SetData(data);
+                itemFirst.SetPos();
+                if (isFirstStart)
+                    playPSItem.Add(itemFirst);
                 //itemFirst.CheckRank(tmpRankUp);
             }
             else
@@ -485,6 +457,9 @@
                 data.index = 2;
                 itemSecond.gameObject.SetActive(true);
                 itemSecond.SetData(data);
+                itemSecond.SetPos();
+                if (isFirstStart)
+                    playPSItem.Add(itemSecond);
                 //itemFirst.CheckRank(tmpRankUp);
             }
             else
@@ -500,6 +475,9 @@
                 data.index = 3;
                 itemThird.gameObject.SetActive(true);
                 itemThird.SetData(data);
+                itemThird.SetPos();
+                if (isFirstStart)
+                    playPSItem.Add(itemThird);
                 //itemFirst.CheckRank(tmpRankUp);
             }
             else
@@ -518,6 +496,18 @@
                     _data.Add(data);
                 }
                 scroller.ReloadData();
+
+                if (isFirstStart)
+                {
+                    Transform container = transform.Find("Scroller/Container");
+                    FinalPanelItem[] items = container.GetComponentsInChildren<FinalPanelItem>();
+                    for (int i = 0; i < items.Length; i++)
+                    {
+                        playPSItem.Add(items[i]);
+                        items[i].SetPos();
+                    }
+                }
+
             }
 
         }

--
Gitblit v1.9.1