97 lines
2.7 KiB
C#
97 lines
2.7 KiB
C#
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;
|
|
|
|
/// <summary>
|
|
/// tip 移动的目标位置
|
|
/// </summary>
|
|
public Transform targetPos;
|
|
|
|
/// <summary>
|
|
/// 弹出音效
|
|
/// </summary>
|
|
public AudioClip popUp;
|
|
|
|
/// <summary>
|
|
/// 盖章音效
|
|
/// </summary>
|
|
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<ResultItem>();
|
|
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;
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|