HunterGameView_LocalPK.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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. void Awake() {
  11. gameModeLocalPK = (ChallengeGameModeLocalPK) GameMgr.ins.gameMode;
  12. InitRenderPlayerInfo(0, GlobalData.localPK_playerRoleIDs[0], 0);
  13. InitRenderPlayerInfo(1, GlobalData.localPK_playerRoleIDs[1], 0);
  14. GameEventCenter.ins.onTargetAnimalHurt += (a, hurtValue) => {
  15. int playerIndex = gameModeLocalPK.GetCurrentPlayIndex();
  16. hitScores[playerIndex] += hurtValue;
  17. RenderScore(playerIndex, hitScores[playerIndex]);
  18. };
  19. }
  20. Color itemBG_ColorDark = new Color(0,0,0,155f/255);
  21. Color itemBG_ColorLight = new Color(0,100f/255,0,155f/255);
  22. void Update() {
  23. if (gameModeLocalPK.GetCurrentPlayIndex() != curPlayerIndex) {
  24. curPlayerIndex = gameModeLocalPK.GetCurrentPlayIndex();
  25. RenderItemBG_Color(0, curPlayerIndex == 0 ? itemBG_ColorLight : itemBG_ColorDark);
  26. RenderItemBG_Color(1, curPlayerIndex == 1 ? itemBG_ColorLight : itemBG_ColorDark);
  27. }
  28. }
  29. void RenderItemBG_Color(int posNum, Color color) {
  30. this.transform.Find("ScoreBox/Item" + posNum).GetComponent<Image>().color = color;
  31. this.transform.Find("ScoreBox/Item" + posNum + "/Cur").gameObject.SetActive(color.Equals(itemBG_ColorLight));
  32. }
  33. void InitRenderPlayerInfo(int posNum, int playerID, int score)
  34. {
  35. (Sprite avatar, string nickName) = RoleMgr.GetRoleInfo(playerID);
  36. this.transform.Find("ScoreBox/Item" + posNum + "/Avatar/Sprite").GetComponent<Image>().sprite = avatar;
  37. this.transform.Find("ScoreBox/Item" + posNum + "/Name").GetComponent<Text>().text = nickName;
  38. RenderScore(posNum, score);
  39. }
  40. void RenderScore(int posNum, int score) {
  41. this.transform.Find("ScoreBox/Item" + posNum + "/Score").GetComponent<Text>().text = "得分: " + score.ToString();
  42. }
  43. }