using DG.Tweening; using DragonLi.Core; using Mirror; using System.Collections; using System.Collections.Generic; using System.Linq; using TMPro; using UnityEngine; public class ResultPlane : MonoBehaviour { public GameObject resultPre; public Transform parent; public TextMeshProUGUI titleText; public GameObject resultNullPre; public AudioSource audioSource; public Transform tip; /// /// tip 移动的目标位置 /// public Transform targetPos; /// /// 弹出音效 /// public AudioClip popUp; /// /// 盖章音效 /// public AudioClip seal; public void Awake() { transform.localScale = new Vector3(0, 0, 0); tip.localScale = new Vector3(4, 4, 4); tip.gameObject.SetActive(false); } public void Start() { audioSource.PlayOneShot(popUp, 1f); transform.DOScale(new Vector3(1, 1, 1), 0.3f).OnComplete(() => { tip.gameObject.SetActive(true); tip.DOScale(new Vector3(1, 1, 1), 0.5f); tip.DOLocalMove(targetPos.localPosition, 0.5f); audioSource.PlayOneShot(seal, 1f); }); ShowInfo(); CoroutineTaskManager.Instance.WaitSecondTodo(() => { WorldUIManager.Ins.Back(); }, 40f); } //Unity public void ShowInfo() { int[] keys = StatisticManager.Ins.statisticDescInfo.OrderByDescending(pair => pair.Value.score).Select(pair => pair.Key).ToArray(); for (int i = 0; i < keys.Length; i++) { GameObject resultItem = Instantiate(resultPre, parent); ResultItem result = resultItem.GetComponent(); if (StatisticManager.Ins.playerIndex == keys[i]) { result.SetBgActive(true); } float score = StatisticManager.Ins.statisticDescInfo[keys[i]].score; int shootTime = StatisticManager.Ins.statisticDescInfo[keys[i]].shootTime; float hitRate; hitRate = Mathf.Round((float)StatisticManager.Ins.statisticDescInfo[keys[i]].hitRate / StatisticManager.Ins.statisticDescInfo[keys[i]].shootTime * 100); if (StatisticManager.Ins.statisticDescInfo[keys[i]].hitRate == 0 && StatisticManager.Ins.statisticDescInfo[keys[i]].shootTime == 0) hitRate = 0; float totalMoveDis = StatisticManager.Ins.statisticDescInfo[keys[i]].totalMoveDis; result.InitData(keys[i], score, i + 1, shootTime, hitRate, Mathf.FloorToInt(totalMoveDis / 10)); } Instantiate(resultNullPre, parent); titleText.text = StatisticManager.Ins.titleName; } }