HunterGameView_LocalPK.cs 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5. public class HunterGameView_LocalPK : MonoBehaviour
  6. {
  7. int[] hitScores = {0, 0};
  8. int curPlayerIndex = -1;
  9. ChallengeGameModeLocalPK gameModeLocalPK;
  10. HunterGamePlayerScoreCounter scoreCounter;
  11. void Awake() {
  12. gameModeLocalPK = (ChallengeGameModeLocalPK) GameMgr.ins.gameMode;
  13. scoreCounter = gameModeLocalPK.getHunterGamePlayerScoreCounter();
  14. if (GlobalData.pkMatchType == PKMatchType.LocalPK) {
  15. InitRenderPlayerInfo_Local(0, GlobalData.localPK_playerRoleIDs[0], 0);
  16. InitRenderPlayerInfo_Local(1, GlobalData.localPK_playerRoleIDs[1], 0);
  17. } else if (GlobalData.pkMatchType == PKMatchType.OnlinePK) {
  18. MatchPlayerInfo info0 = GlobalData.matchPlayerInfos[0];
  19. MatchPlayerInfo info1 = GlobalData.matchPlayerInfos[1];
  20. InitRenderPlayerInfo_Online(0, info0.avatarID, info0.nickname, 0);
  21. InitRenderPlayerInfo_Online(1, info1.avatarID, info1.nickname, 0);
  22. }
  23. }
  24. void Update() {
  25. if (gameModeLocalPK.GetCurrentPlayIndex() != curPlayerIndex) {
  26. curPlayerIndex = gameModeLocalPK.GetCurrentPlayIndex();
  27. (Sprite avatar, string nickName) = (null, null);
  28. if (GlobalData.pkMatchType == PKMatchType.LocalPK) {
  29. (avatar, nickName) = RoleMgr.GetRoleInfo(GlobalData.localPK_playerRoleIDs[curPlayerIndex]);
  30. } else if (GlobalData.pkMatchType == PKMatchType.OnlinePK) {
  31. (avatar, nickName) = RoleMgr.GetRoleInfo(GlobalData.matchPlayerInfos[curPlayerIndex].avatarID);
  32. nickName = GlobalData.matchPlayerInfos[curPlayerIndex].nickname;
  33. }
  34. this.transform.Find("CurrentPlayer/Avatar").GetComponent<Image>().sprite = avatar;
  35. this.transform.Find("CurrentPlayer/Name").GetComponent<Text>().text = nickName;
  36. } else {
  37. //索引相同,则渲染对应的玩家时间
  38. (float t, float tMax) = gameModeLocalPK.GetSingleShootReadyTime();
  39. this.transform.Find("CurrentPlayer/Progress").GetComponent<Image>().fillAmount = t / tMax;
  40. this.transform.Find("CurrentPlayer/Time").GetComponent<Text>().text = TimeUtil.GetTimeStr(t);
  41. }
  42. //渲染得分
  43. for (int i = 0; i < 2; i++) {
  44. if (hitScores[i] != scoreCounter.hitScores[i]) {
  45. RenderScore(i, scoreCounter.hitScores[i]);
  46. }
  47. }
  48. if (GameMgr.ins.gameOver) {
  49. this.transform.Find("CurrentPlayer").gameObject.SetActive(false);
  50. }
  51. }
  52. void InitRenderPlayerInfo_Local(int posNum, int roleID, int score)
  53. {
  54. (Sprite avatar, string nickName) = RoleMgr.GetRoleInfo(roleID);
  55. this.transform.Find("ScoreBox/Item" + posNum + "/Avatar/Sprite").GetComponent<Image>().sprite = avatar;
  56. this.transform.Find("ScoreBox/Item" + posNum + "/Name").GetComponent<Text>().text = nickName;
  57. RenderScore(posNum, score);
  58. }
  59. void InitRenderPlayerInfo_Online(int posNum, int avatarID, string nickname, int score)
  60. {
  61. Sprite avatar = RoleMgr.GetAvatar(avatarID);
  62. this.transform.Find("ScoreBox/Item" + posNum + "/Avatar/Sprite").GetComponent<Image>().sprite = avatar;
  63. this.transform.Find("ScoreBox/Item" + posNum + "/Name").GetComponent<Text>().text = nickname;
  64. RenderScore(posNum, score);
  65. }
  66. void RenderScore(int posNum, int score) {
  67. hitScores[posNum] = score;
  68. this.transform.Find("ScoreBox/Item" + posNum + "/Score").GetComponent<Text>().text = "得分: " + score.ToString();
  69. }
  70. public void ShowPlayerDie(int playerIndex) {
  71. this.transform.Find("ScoreBox/Item" + playerIndex + "/IconDie").gameObject.SetActive(true);
  72. this.transform.Find("ScoreBox/Item" + playerIndex + "/MaskDie").gameObject.SetActive(true);
  73. }
  74. }