GameTimeCounterSA.cs 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5. public class GameTimeCounterSA : MonoBehaviour
  6. {
  7. [SerializeField] Text playTimeText;
  8. [SerializeField] Text cointCountText;
  9. [SerializeField] GameObject payMask;
  10. [SerializeField] Text payTimeCountDownText;
  11. bool _paused;
  12. long _pauseTimePoint;
  13. const long PayTimeCountDown = 60 * 1000;
  14. public RawImage QRimage;
  15. string coinContinueGameUnit;
  16. string remainingTimeUnit;
  17. string minutesUnit;
  18. string secondsUnit;
  19. string coinsUnit;
  20. void Start()
  21. {
  22. payMask.SetActive(false);
  23. coinContinueGameUnit = TextAutoLanguage2.GetTextByKey("CoinContinueGame");
  24. remainingTimeUnit = TextAutoLanguage2.GetTextByKey("RemainingTime");
  25. minutesUnit = TextAutoLanguage2.GetTextByKey("Minutes");
  26. secondsUnit = TextAutoLanguage2.GetTextByKey("Seconds");
  27. coinsUnit = TextAutoLanguage2.GetTextByKey("CoinsInfo");
  28. StandaloneAPI.StartGameTimeCountDown();
  29. QRimage.texture = StandaloneAPI.GetQR();
  30. }
  31. void Update()
  32. {
  33. //游戏投币测试
  34. if (Input.GetKeyDown(KeyCode.Alpha7))
  35. {
  36. //投币接口测试
  37. StandaloneAPI.InsertCoint(7);
  38. }
  39. StandaloneAPI.DoGameTimeCountDown();
  40. //"剩余时间{0}"
  41. playTimeText.text = string.Format(remainingTimeUnit, GetTimeStr());
  42. if (StandaloneAPI.GetGameTimeCountDown() > 0)
  43. {
  44. if (_paused)
  45. {
  46. payMask.SetActive(false);
  47. StandaloneAPI.ResumeGame();
  48. _paused = false;
  49. }
  50. }
  51. else
  52. {
  53. if (!_paused)
  54. {
  55. payMask.SetActive(true);
  56. StandaloneAPI.PauseGame();
  57. _paused = true;
  58. _pauseTimePoint = JCUnityLib.TimeUtils.GetTimestamp();
  59. }
  60. long t = PayTimeCountDown - (JCUnityLib.TimeUtils.GetTimestamp() - _pauseTimePoint);
  61. if (t <= 0) t = 0;
  62. //"投币继续游戏\n{0}S"
  63. payTimeCountDownText.text = string.Format(coinContinueGameUnit, t / 1000);
  64. if (UserSettings.ins != null)
  65. {
  66. //"币:{0}/{1}"
  67. cointCountText.text = string.Format(coinsUnit, StandaloneAPI.CoinCount, UserSettings.ins.PerRoundCoin);
  68. }
  69. if (t == 0) StandaloneAPI.ForceBackHome();
  70. }
  71. //#if UNITY_EDITOR
  72. //#endif
  73. }
  74. string GetTimeStr()
  75. {
  76. long second = StandaloneAPI.GetGameTimeCountDown() / 1000;
  77. long minute = second / 60;
  78. second = second % 60;
  79. string str = second + secondsUnit;//"秒";
  80. if (minute > 0) str = minute + minutesUnit + str; //"分"
  81. return str;
  82. }
  83. }