RoleSelectView.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5. using UnityEngine.SceneManagement;
  6. public class RoleSelectView : MonoBehaviour
  7. {
  8. bool[] inited = {false, false};
  9. void Start()
  10. {
  11. RenderPlayer(0);
  12. RenderPlayer(1);
  13. }
  14. void RenderPlayer(int playerIndex) {
  15. Transform root = this.transform.Find("Player" + (playerIndex + 1));
  16. int roleID = PKGameMode.playerRoleIDs[playerIndex];
  17. if (!inited[playerIndex]) {
  18. inited[playerIndex] = true;
  19. Button left = root.Find("Left").GetComponent<Button>();
  20. left.onClick.AddListener(delegate() {
  21. AudioMgr.ins.PlayBtn();
  22. NextRole(playerIndex, -1);
  23. RenderPlayer(playerIndex);
  24. });
  25. Button right = root.Find("Right").GetComponent<Button>();
  26. right.onClick.AddListener(delegate() {
  27. AudioMgr.ins.PlayBtn();
  28. NextRole(playerIndex, +1);
  29. RenderPlayer(playerIndex);
  30. });
  31. }
  32. (Sprite sprite, string name) = RoleMgr.GetRoleInfo(roleID);
  33. root.Find("Avatar").GetComponent<Image>().sprite = sprite;
  34. root.Find("Name").GetComponent<Text>().text = name;
  35. }
  36. void NextRole(int playerIndex, int variety) {
  37. PKGameMode.playerRoleIDs[playerIndex] += variety;
  38. if (PKGameMode.playerRoleIDs[playerIndex] < 1) {
  39. PKGameMode.playerRoleIDs[playerIndex] = RoleMgr.roleCount;
  40. } else if (PKGameMode.playerRoleIDs[playerIndex] > RoleMgr.roleCount) {
  41. PKGameMode.playerRoleIDs[playerIndex] = 1;
  42. }
  43. if (PKGameMode.playerRoleIDs[playerIndex] == PKGameMode.playerRoleIDs[1 - playerIndex]) {
  44. NextRole(playerIndex, variety);
  45. }
  46. }
  47. public void back() {
  48. AudioMgr.ins.PlayBtn();
  49. Destroy(this.gameObject);
  50. }
  51. public void StartGame() {
  52. AudioMgr.ins.PlayBtn();
  53. GameMgr.gameType = 2;
  54. SceneManager.LoadScene("Game", LoadSceneMode.Single);
  55. }
  56. }