TimeLimitGameSettleView.cs 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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. }
  40. public void OnClick_Back() {
  41. //更改为点击‘返回上一页’,先进入运动结算页面后,返回到主界面。以减少用户对左上角返回键的操作(太边缘了)
  42. GameAssistUI.ins.onBtnBack();
  43. //AudioMgr.ins.PlayBtn();
  44. ////返回上一页。还未退出。退出再统一结算
  45. //SceneManager.LoadScene(SceneManager.GetActiveScene().name, LoadSceneMode.Single);
  46. //GameMgr.ins.gameMode.gameMgr.userGameAnalyse.showResultView(() => {
  47. // SceneManager.LoadScene(SceneManager.GetActiveScene().name, LoadSceneMode.Single);
  48. //});
  49. }
  50. public void OnClick_Again() {
  51. AudioMgr.ins.PlayBtn();
  52. TimeLimitGameMode.insCountWillTryAgain = TimeLimitGameMode.insCount + 1;
  53. SceneManager.LoadScene(SceneManager.GetActiveScene().name, LoadSceneMode.Single);
  54. //这里设置需要播放开始音效
  55. AudioMgr.bNeedPlayStartAudio = true;
  56. }
  57. }