PKGameView.cs 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5. using UnityEngine.SceneManagement;
  6. /* PK模式的游戏界面 */
  7. public class PKGameView : MonoBehaviour
  8. {
  9. [SerializeField] Text[] scoreTexts;
  10. PKGameMode pKGameMode;
  11. int currentPlayerIndex = -1;
  12. string[] numCNs = {"", "第一局", "第二局", "第三局", "第四局", "第五局", "第六局"};
  13. string[] numENs = {"", "1st leg", "2st leg", "3st leg", "4st leg", "5st leg", "6st leg"};
  14. public static PKGameView ins;
  15. void Start()
  16. {
  17. ins = this;
  18. pKGameMode = (PKGameMode) GameMgr.ins.gameMode;
  19. RenderPlayerInfo(1, PKGameMode.playerRoleIDs[0]);
  20. RenderPlayerInfo(2, PKGameMode.playerRoleIDs[1]);
  21. }
  22. void RenderPlayerInfo(int posNum, int playerID)
  23. {
  24. (Sprite avatar, string nickName) = RoleMgr.GetRoleInfo(playerID);
  25. this.transform.Find("TotalScore/Avatar" + posNum + "/Sprite").GetComponent<Image>().sprite = avatar;
  26. this.transform.Find("TotalScore/Name" + posNum).GetComponent<Text>().text = nickName;
  27. }
  28. void Update()
  29. {
  30. scoreTexts[0].text = TextAutoLanguage.GetLanguage() == LanguageEnum.Chinese
  31. ? numCNs[pKGameMode.round] : numENs[pKGameMode.round];
  32. scoreTexts[1].text = pKGameMode.currentScores[0].ToString($"f{CommonConfig.ringsPrecision}");
  33. scoreTexts[2].text = pKGameMode.currentScores[1].ToString($"f{CommonConfig.ringsPrecision}");
  34. scoreTexts[3].text = pKGameMode.totalScores[0] + " : " + pKGameMode.totalScores[1];
  35. if (currentPlayerIndex != pKGameMode.currentPlayerIndex)
  36. {
  37. currentPlayerIndex = pKGameMode.currentPlayerIndex;
  38. (Sprite avatar, string nickName) = RoleMgr.GetRoleInfo(PKGameMode.playerRoleIDs[currentPlayerIndex]);
  39. this.transform.Find("CurrentPlayer/Avatar").GetComponent<Image>().sprite = avatar;
  40. this.transform.Find("CurrentPlayer/Name").GetComponent<Text>().text = nickName;
  41. }
  42. if (currentPlayerIndex == pKGameMode.currentPlayerIndex)
  43. {
  44. this.transform.Find("CurrentPlayer/Progress").GetComponent<Image>().fillAmount = pKGameMode.singleShootReadyTime / pKGameMode.singleShootReadyMaxTime;
  45. this.transform.Find("CurrentPlayer/Time").GetComponent<Text>().text = pKGameMode.GetTimeStr();
  46. }
  47. }
  48. }