TimeLimitGameSettleView.cs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5. using UnityEngine.SceneManagement;
  6. using DG.Tweening;
  7. /* 限时模式的结算界面 */
  8. public class TimeLimitGameSettleView : MonoBehaviour
  9. {
  10. [SerializeField] Sprite starLight;
  11. void Start()
  12. {
  13. if (TimeLimitGameView.ins)
  14. {
  15. TimeLimitGameView.ins.gameObject.SetActive(false);
  16. }
  17. object[] results = GameMgr.ins.gameMode.Settle();
  18. int starCount = (int) results[0];
  19. float score = (float) results[1];
  20. // if (starCount >= 3)
  21. // this.transform.Find("Result1").gameObject.SetActive(true);
  22. // else
  23. // this.transform.Find("Result2").gameObject.SetActive(true);
  24. for (int i = 1; i <= starCount && i <= 3; i++) {
  25. Transform tsf = this.transform.Find("Star" + i);
  26. tsf.DOMoveZ(0, (float) i * 0.3f).OnComplete(() => {
  27. tsf.GetComponent<Image>().sprite = starLight;
  28. tsf.DOPunchScale(new Vector3(0.3f, 0.3f, 0.3f), 0.3f);
  29. });
  30. }
  31. Text scoreText = this.transform.Find("ScoreBG/Layout/Score").GetComponent<Text>();
  32. DOTween.To(() => 0, value => {
  33. scoreText.text = value.ToString($"f{CommonConfig.ringsPrecision}");
  34. LayoutRebuilder.ForceRebuildLayoutImmediate(scoreText.transform.parent.GetComponent<RectTransform>());
  35. }, score, 1);
  36. AudioMgr.ins.PlayWin();
  37. SimulateMouseController.ins?.AddOpenLocker("NotGame");
  38. GameOverInterface.OnGameOver(GameMgr.gameType);
  39. if (CommonConfig.StandaloneModeOrPlatformB)
  40. {
  41. //设置一下需要上传排行榜的分数
  42. LocalRank.RankManager.SetCurrentScore((int)score);
  43. LocalRank.RankManager.CreateRankView(GameMgr.gameType, null);
  44. }
  45. }
  46. public void OnClick_Back() {
  47. //更改为点击‘返回上一页’,先进入运动结算页面后,返回到主界面。以减少用户对左上角返回键的操作(太边缘了)
  48. GameAssistUI.ins.onBtnBack();
  49. //AudioMgr.ins.PlayBtn();
  50. ////返回上一页。还未退出。退出再统一结算
  51. //SceneManager.LoadScene(SceneManager.GetActiveScene().name, LoadSceneMode.Single);
  52. //GameMgr.ins.gameMode.gameMgr.userGameAnalyse.showResultView(() => {
  53. // SceneManager.LoadScene(SceneManager.GetActiveScene().name, LoadSceneMode.Single);
  54. //});
  55. }
  56. public void OnClick_Again() {
  57. AudioMgr.ins.PlayBtn();
  58. TimeLimitGameMode.insCountWillTryAgain = TimeLimitGameMode.insCount + 1;
  59. SceneManager.LoadScene(SceneManager.GetActiveScene().name, LoadSceneMode.Single);
  60. //这里设置需要播放开始音效
  61. AudioMgr.bNeedPlayStartAudio = true;
  62. }
  63. }