RoleSelectView.cs 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  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 RoleSelectView : JCUnityLib.ViewBase, MenuBackInterface
  8. {
  9. bool[] inited = {false, false};
  10. void Start()
  11. {
  12. PersistenHandler.ins?.menuBackCtr.views.Add(this);
  13. TopBarView.NeedShowIt(this);
  14. GlobalData.localPK_playerRoleIDs[0] = LoginMgr.myUserInfo.avatarID;
  15. RenderPlayer(0);
  16. RenderPlayer(1);
  17. }
  18. void OnDestroy() {
  19. PersistenHandler.ins?.menuBackCtr.views.Remove(this);
  20. TopBarView.DontNeedShowIt(this);
  21. }
  22. public bool OnMenuBack() {
  23. ViewMgr.Instance.DestroyView<RoleSelectView>();
  24. return true;
  25. }
  26. void RenderPlayer(int playerIndex) {
  27. Transform root = this.transform.Find("Player" + (playerIndex + 1));
  28. int roleID = GlobalData.localPK_playerRoleIDs[playerIndex];
  29. if (!inited[playerIndex]) {
  30. inited[playerIndex] = true;
  31. Button left = root.Find("Left").GetComponent<Button>();
  32. left.onClick.AddListener(delegate() {
  33. AudioMgr.ins.PlayBtn();
  34. NextRole(playerIndex, -1);
  35. RenderPlayer(playerIndex);
  36. });
  37. Button right = root.Find("Right").GetComponent<Button>();
  38. right.onClick.AddListener(delegate() {
  39. AudioMgr.ins.PlayBtn();
  40. NextRole(playerIndex, +1);
  41. RenderPlayer(playerIndex);
  42. });
  43. }
  44. string name = RoleMgr.GetRoleInfo(roleID, root.Find("AvatarParent/Avatar").GetComponent<Image>());
  45. //root.Find("Name").GetComponent<Text>().text = name;
  46. TextEllipsis.SetTextWithEllipsis(root.Find("Name").GetComponent<Text>(), name);
  47. }
  48. void NextRole(int playerIndex, int variety) {
  49. GlobalData.localPK_playerRoleIDs[playerIndex] += variety;
  50. if (GlobalData.localPK_playerRoleIDs[playerIndex] < 1) {
  51. GlobalData.localPK_playerRoleIDs[playerIndex] = RoleMgr.roleCount;
  52. } else if (GlobalData.localPK_playerRoleIDs[playerIndex] > RoleMgr.roleCount) {
  53. GlobalData.localPK_playerRoleIDs[playerIndex] = 1;
  54. }
  55. if (GlobalData.localPK_playerRoleIDs[playerIndex] == GlobalData.localPK_playerRoleIDs[1 - playerIndex]) {
  56. NextRole(playerIndex, variety);
  57. }
  58. }
  59. public void back() {
  60. AudioMgr.ins.PlayBtn();
  61. ViewMgr.Instance.DestroyView<RoleSelectView>();
  62. }
  63. public void StartGame() {
  64. AudioMgr.ins.PlayBtn();
  65. //ViewMgr.Instance.ShowView<PKGameOptionView>();
  66. if (GameMgr.judgmentGameType == 1)
  67. {
  68. //限时射箭
  69. GlobalData.pkMatchType = GlobalDataTemp.pkMatchType;
  70. GameMgr.gameType = 2;
  71. SceneManager.LoadScene("Game", LoadSceneMode.Single);
  72. }
  73. else
  74. {
  75. int gameType = GameMgr.judgmentGameType;
  76. if (GlobalDataTemp.pkMatchType == PKMatchType.LocalPK)
  77. {
  78. if (GameMgr.judgmentGameType == 3) gameType = 6;
  79. else if (GameMgr.judgmentGameType == 4) gameType = 7;
  80. else if (GameMgr.judgmentGameType == 5) gameType = 8;
  81. }
  82. GlobalData.pkMatchType = GlobalDataTemp.pkMatchType;
  83. GameMgr.gameType = gameType;
  84. //打野鸡,打野兔,打野狼
  85. SceneManager.LoadScene("GameChallenge", LoadSceneMode.Single);
  86. }
  87. }
  88. }