PKGameView.cs 2.3 KB

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