From adb0dae8a82a7eabb4e686bc0e83c8859bf6445f Mon Sep 17 00:00:00 2001 From: chenxin <chenxin6991@163.com> Date: Fri, 25 Dec 2020 10:48:53 +0800 Subject: [PATCH] Merge branch 'master' of http://47.95.218.140:8090/r/GemBattle into master --- Assets/Scripts/TowerDefense/UI/EndlessSettlementPropList.cs | 96 ++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 85 insertions(+), 11 deletions(-) diff --git a/Assets/Scripts/TowerDefense/UI/EndlessSettlementPropList.cs b/Assets/Scripts/TowerDefense/UI/EndlessSettlementPropList.cs index fff7f20..3101b0d 100644 --- a/Assets/Scripts/TowerDefense/UI/EndlessSettlementPropList.cs +++ b/Assets/Scripts/TowerDefense/UI/EndlessSettlementPropList.cs @@ -2,6 +2,9 @@ using System.Collections.Generic; using UnityEngine; using TowerDefense.Level; +using UnityEngine.UI; +using Protobuf; +using DG.Tweening; /** * 无尽模式结算界面列表脚本 @@ -19,29 +22,100 @@ private string iconPath = "UI/Props/"; private string bgPath = "UI/Props/Di/"; + private float slowTime = 0.1f;//物品挨个出现频率 + + //private float parentHeight;//父物体高度 + GridLayoutGroup myGroup; + + RectTransform myRect, gridRect; + + /// <summary> + /// Awake is called when the script instance is being loaded. + /// </summary> + void Awake() + { + //parentHeight = transform.parent.GetComponent<RectTransform>().sizeDelta.y; + myGroup = Grid.GetComponent<GridLayoutGroup>(); + gridRect = Grid.GetComponent<RectTransform>(); + myRect = GetComponent<RectTransform>(); + } /// <summary> /// 刷新道具列表 /// </summary> public void RefreshList() { + Invoke("StartLater", 0.1f); + + // if (Application.platform == RuntimePlatform.WindowsEditor) + // { + // Debug.Log(gameObject.activeSelf); + // //UnityEditor.EditorApplication.isPaused = true; + // } + + return; + // List<EndlessDrop> list = EndlessDropManager.instance.GetAllObtainedDrop(); + + // for (int i = 0; i < list.Count; ++i) + // { + // if (list[i].Reward.type == CURRENCY.Gold) + // { + // AddItem($"{(int)list[i].Reward.type}"); + // } + // else + // { + // for (int j = 0; j < list[i].Reward.count; ++j) + // { + // AddItem($"{(int)list[i].Reward.type}_{list[i].Reward.id}"); + // } + // } + // } + } + + private void StartLater() + { + AudioSourceManager.Ins.Play(AudioEnum.End); + + StartCoroutine(ShowSlow()); + } + + IEnumerator ShowSlow() + { List<EndlessDrop> list = EndlessDropManager.instance.GetAllObtainedDrop(); for (int i = 0; i < list.Count; ++i) { - for (int j = 0; j < list[i].Reward.count; ++j) + if (list[i].Reward.type == CURRENCY.Gold) { - GameObject item = Instantiate(ItemPrefab); - EndlessPropIcon propIcon = item.GetComponent<EndlessPropIcon>(); - string resId = list[i].Reward.id == 0 ? resId = $"{(int)list[i].Reward.type}" : $"{list[i].Reward.type}_{list[i].Reward.id}"; - - Sprite iconSp = Resources.Load<Sprite>($"{iconPath}{resId}"); - Sprite bgSp = Resources.Load<Sprite>($"{bgPath}{resId}"); - - propIcon.SetIcon(iconSp); - propIcon.SetBg(bgSp); - item.transform.SetParent(Grid.transform); + AddItem($"{(int)list[i].Reward.type}"); + yield return new WaitForSeconds(slowTime); } + else + { + for (int j = 0; j < list[i].Reward.count; ++j) + { + AddItem($"{(int)list[i].Reward.type}_{list[i].Reward.id}"); + yield return new WaitForSeconds(slowTime); + } + } + } + } + + private void AddItem(string resId) + { + GameObject item = Instantiate(ItemPrefab); + EndlessPropIcon propIcon = item.GetComponent<EndlessPropIcon>(); + + Sprite iconSp = Resources.Load<Sprite>($"{iconPath}{resId}"); + Sprite bgSp = Resources.Load<Sprite>($"{bgPath}{resId}"); + + propIcon.SetIcon(iconSp); + propIcon.SetBg(bgSp); + item.transform.SetParent(Grid.transform, false); + + if (gridRect.sizeDelta.y > myRect.sizeDelta.y && Grid.transform.childCount % myGroup.constraintCount == 1) + { + gridRect.DOAnchorPosY(gridRect.sizeDelta.y - myRect.sizeDelta.y + (item.transform as RectTransform).sizeDelta.y, 0.2f); } } } -- Gitblit v1.9.1