GameResultView.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. public class GameResultView : MonoBehaviour
  8. {
  9. [SerializeField] Sprite starLight;
  10. void Start()
  11. {
  12. if (ChallengeGameView.ins)
  13. {
  14. ChallengeGameView.ins.gameObject.SetActive(false);
  15. }
  16. if (TimeLimitGameView.ins)
  17. {
  18. TimeLimitGameView.ins.gameObject.SetActive(false);
  19. }
  20. GameWinResult result = GameMgr.ins.GetGameWinResult();
  21. if (result.starCount == 3)
  22. this.transform.Find("Result1").gameObject.SetActive(true);
  23. else
  24. this.transform.Find("Result2").gameObject.SetActive(true);
  25. for (int i = 1; i <= result.starCount; i++) {
  26. Transform tsf = this.transform.Find("Star" + i);
  27. tsf.DOMoveZ(0, (float) i * 0.3f).OnComplete(() => {
  28. tsf.GetComponent<Image>().sprite = starLight;
  29. tsf.DOPunchScale(new Vector3(0.3f, 0.3f, 0.3f), 0.3f);
  30. });
  31. }
  32. DOTween.To(() => 0, value => {
  33. this.transform.Find("ScoreBG/Text").GetComponent<Text>().text = "得分: " + value;
  34. }, result.score, 1);
  35. AudioMgr.ins.PlayWin();
  36. }
  37. public void GoHome() {
  38. AudioMgr.ins.PlayBtn();
  39. SceneManager.LoadScene("Home", LoadSceneMode.Single);
  40. }
  41. public void TryAgain() {
  42. AudioMgr.ins.PlayBtn();
  43. SceneManager.LoadScene("Game", LoadSceneMode.Single);
  44. }
  45. }