From 841b66ef416a727a0c798ad2263b098247cb4aa7 Mon Sep 17 00:00:00 2001
From: chenxin <chenxin6991@163.com>
Date: Fri, 27 Nov 2020 12:00:16 +0800
Subject: [PATCH] buff预览暂停

---
 Assets/Scripts/UI/FinalPanel/FinalPanel.cs |  128 +++++++++++++++++++++++++++++++++---------
 1 files changed, 100 insertions(+), 28 deletions(-)

diff --git a/Assets/Scripts/UI/FinalPanel/FinalPanel.cs b/Assets/Scripts/UI/FinalPanel/FinalPanel.cs
index b183d88..cba824a 100644
--- a/Assets/Scripts/UI/FinalPanel/FinalPanel.cs
+++ b/Assets/Scripts/UI/FinalPanel/FinalPanel.cs
@@ -1,4 +1,5 @@
-using System.Collections;
+using System.Collections.Generic;
+using System.Collections;
 using UnityEngine.UI;
 using UnityEngine;
 using EnhancedUI;
@@ -11,19 +12,19 @@
 
 public class FinalPanel : MonoBehaviour, IEnhancedScrollerDelegate
 {
-    private EnhancedScroller scroller;
+    //private EnhancedScroller scroller;
 
-    private SmallList<FinalPanelItemData> _data;
-
+    //private SmallList<FinalPanelItemData> _data;
+    private List<FinalPanelItemData> _data;
     public EnhancedScrollerCellView cellViewPrefab;
     [SerializeField]
     private Sprite rank_di_0, rank_di_1, rank_di_2, rank_di_03;
     [SerializeField]
     private Sprite rank_icon_0, rank_icon_1, rank_icon_2;
 
-    public string endlessGameScene = "Endless2D";
+    private string endlessGameScene = "Endless2D";
 
-    public string loadingScene = "LoadingScene";
+    private string loadingScene = "LoadingScene";
     Button closeBtn;
     // Start is called before the first frame update
     void Start()
@@ -64,7 +65,8 @@
     public void SetData(string waveInfo, int myScore)
     {
         hScore = PlayerPrefs.GetInt("GemBattleHScore");
-        scrollerCanvasGroup = transform.Find("Scroller").GetComponent<CanvasGroup>();
+        scrollerCanvasGroup = transform.Find("Scroll View").GetComponent<CanvasGroup>();
+        //scrollerCanvasGroup = transform.Find("Scroller").GetComponent<CanvasGroup>();
         if (myScore > hScore)
         {
             PlayerPrefs.SetInt("GemBattleHScore", myScore);
@@ -78,32 +80,65 @@
 
         waveText = transform.Find("Text_Wave").GetComponent<Text>();
         scoreText = transform.Find("Text_Score").GetComponent<Text>();
+        scoreText.text = "";
+        waveText.text = "";
         waveText.gameObject.SetActive(false);
         scoreText.gameObject.SetActive(false);
 
         image_NewRecord = transform.Find("Image_NewRecord").gameObject;
         image_NewRecord.SetActive(false);
+        LoadLargeData(hScore);
 
         Transform ts = transform.Find("Images");
 
         Sequence agentTweenSeq = DOTween.Sequence();
+        //先出现
+        Image tsTiele = transform.Find("Image_Tiele").GetComponent<Image>();
+        agentTweenSeq.Append(tsTiele.transform.DOScale(Vector3.one, 0.2f));//变化图片大小
+        agentTweenSeq.Join(tsTiele.DOFade(1, 0.3f));
 
-        agentTweenSeq.Append(ts.DOScale(Vector3.one, 0.2f));//变化图片大小
+        Image Image1 = transform.Find("Image1").GetComponent<Image>();
+        agentTweenSeq.Append(Image1.transform.DOScale(Vector3.one, 0.2f));//变化图片大小
+        agentTweenSeq.Join(Image1.DOFade(1, 0.2f));
+        agentTweenSeq.Join(waveText.DOText(waveInfo, 0.2f));
 
-        agentTweenSeq.Append(ts.DOScale(new Vector3(1.7f, 1.7f, 1.7f), 0.2f));//变化图片大小
-        agentTweenSeq.Append(ts.DOScale(Vector3.one, 0.2f));//变化图片大小
-        agentTweenSeq.Append(ts.DOScale(new Vector3(1.2f, 1.2f, 1.2f), 0.2f));//变化图片大小
-        agentTweenSeq.Append(ts.DOScale(Vector3.one, 0.2f));//变化图片大小
+        Image Image2 = transform.Find("Image2").GetComponent<Image>();
+        agentTweenSeq.Append(Image2.transform.DOScale(Vector3.one, 0.2f));//变化图片大小
+        agentTweenSeq.Join(Image2.DOFade(1, 0.2f));
 
         agentTweenSeq.AppendCallback(StartLoadLargeData);
-        agentTweenSeq.Append(DOTween.To(delegate (float value)
+
+        Image Image3 = transform.Find("Image3").GetComponent<Image>();
+        agentTweenSeq.Append(Image3.transform.DOScale(Vector3.one, 0.2f));//变化图片大小
+        agentTweenSeq.Join(Image3.DOFade(1, 0.2f));
+        agentTweenSeq.Join(DOTween.To(delegate (float value)
         {
             var temp = Math.Floor(value);
             scoreText.text = temp + "";
         }, 0, myScore, 1.0f));
 
+        tsLight = transform.Find("ImageLight");
+        Image ImageLight = tsLight.GetComponent<Image>();
+        agentTweenSeq.Join(ImageLight.transform.DOScale(Vector3.one, 0.2f));//变化图片大小
+        agentTweenSeq.Join(ImageLight.DOFade(1, 0.2f).OnComplete(RotateLight));
+        //agentTweenSeq.AppendCallback(RotateLight);
+
         agentTweenSeq.AppendCallback(TextDoTweenFinish);
-        agentTweenSeq.Append(waveText.DOText(waveInfo, 0.2f));
+    }
+
+    bool isRotate = false;
+    float offect = 0;
+    /// <summary>
+    /// LateUpdate is called every frame, if the Behaviour is enabled.
+    /// It is called after all Update functions have been called.
+    /// </summary>
+    void LateUpdate()
+    {
+        if (isRotate)
+        {
+            offect += Time.deltaTime;
+            tsLight.localRotation = Quaternion.Euler(0, 0, offect * 30);
+        }
     }
 
     /// <summary>
@@ -112,7 +147,6 @@
     protected void StartLoadLargeData()
     {
         scoreText.gameObject.SetActive(true);
-        LoadLargeData(hScore);
         StartCoroutine(PlayerItemDoTween());
     }
 
@@ -122,18 +156,24 @@
     /// <returns></returns>
     IEnumerator PlayerItemDoTween()
     {
-        yield return 1f;
-        FinalPanelItem[] allItems = transform.Find("Scroller/Container").GetComponentsInChildren<FinalPanelItem>();
-        for (int i = 0; i < allItems.Length; i++)
-        {
-            allItems[i].SetPos();
-        }
+        //yield return 1f;
+        // FinalPanelItem[] allItems = transform.Find("Scroller/Container").GetComponentsInChildren<FinalPanelItem>();
+        // for (int i = 0; i < allItems.Length; i++)
+        // {
+        //     allItems[i].SetPos();
+        // }
+
         yield return new WaitForEndOfFrame();
         scrollerCanvasGroup.alpha = 1;
-        for (int i = 0; i < allItems.Length; i++)
+        // for (int i = 0; i < allItems.Length; i++)
+        // {
+        //     allItems[i].PlayDoTween(0.1f);
+        //     yield return new WaitForSeconds(0.1f);
+        // }
+        for (int i = 0; i < 8; i++)
         {
-            allItems[i].PlayDoTween(0.1f);
-            yield return new WaitForSeconds(0.1f);
+            allItemLis[i].PlayDoTween(0.1f);
+            yield return new WaitForSeconds(0.07f);
         }
         image_HScore.SetActive(true);
 
@@ -159,19 +199,40 @@
         closeBtn.interactable = true;
     }
 
+    Transform tsLight;
+    /// <summary>
+    /// 光出现后开始旋转
+    /// </summary>
+    protected void RotateLight()
+    {
+        isRotate = true;
+        offect = 0;
+        //Transform ImageLight = transform.Find("ImageLight");
+        //ImageLight.DORotate(new Vector3(0, 180, 0), 1.0f).SetLoops(-1,LoopType.Incremental);
+    }
+
+    List<FinalPanelItem> allItemLis;//新生成的排行榜
     /// <summary>
     /// 生成假排行榜
     /// </summary>
     /// <param name="hScore">自身分数</param>
     private void LoadLargeData(int hScore)
     {
-        scroller = transform.Find("Scroller").GetComponent<EnhancedScroller>();
-        scroller.Delegate = this;
-        _data = new SmallList<FinalPanelItemData>();
+        //scroller = transform.Find("Scroller").GetComponent<EnhancedScroller>();
+        Transform content = transform.Find("Scroll View/Viewport/Content");
+
+        //scroller.Delegate = this;
+        _data = new List<FinalPanelItemData>();
         FinalPanelItemData data;
         int score = 101;
+        GameObject go;
+        FinalPanelItem tmpData;
+        allItemLis = new List<FinalPanelItem>();
         for (var i = 0; i < 100; i++)
         {
+            go = Instantiate(cellViewPrefab.gameObject, content);
+            tmpData = go.GetComponent<FinalPanelItem>();
+            allItemLis.Add(tmpData);
             data = new FinalPanelItemData();
             data.score = score - i;
             data.index = i + 1;
@@ -191,8 +252,19 @@
 
         _data[2].spriteIcon = rank_icon_2;
         _data[2].spriteBackGround = rank_di_2;
+
         // tell the scroller to reload now that we have the data
-        scroller.ReloadData();
+        //scroller.ReloadData();
+        for (int i = 0; i < allItemLis.Count; i++)
+        {
+            allItemLis[i].SetData(_data[i]);
+        }
+
+        for (int i = 0; i < 8; i++)
+        {
+            allItemLis[i].SetPos();
+        }
+
     }
 
     #region EnhancedScroller Handlers

--
Gitblit v1.9.1