HomeView_ChallengeOption.cs 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using FancyScrollView.FocusOn;
  6. using UnityEngine;
  7. using UnityEngine.SceneManagement;
  8. using UnityEngine.UI;
  9. [Serializable]
  10. public class LevelInfo
  11. {
  12. public string Name;
  13. public Sprite Icon;
  14. //自动语言转换id
  15. public string textId;
  16. //添加哪个语言脚本
  17. public int languageType = 0;
  18. public int startGameType = -1;
  19. }
  20. public class HomeView_ChallengeOption : MonoBehaviour
  21. {
  22. public GameObject entryList;
  23. [SerializeField] ScrollView scrollView = default;
  24. [SerializeField] Button prevCellButton = default;
  25. [SerializeField] Button nextCellButton = default;
  26. public List<LevelInfo> levelInfos;
  27. void Awake()
  28. {
  29. //根据条件激活野鸡关卡或野鸭关卡
  30. //if (CommonConfig.AppArea == 0)
  31. //{
  32. // entryList.transform.Find("Item1").gameObject.SetActive(GlobalDataTemp.pkMatchType != PKMatchType.None);
  33. // entryList.transform.Find("Item3").gameObject.SetActive(GlobalDataTemp.pkMatchType == PKMatchType.None);
  34. //}
  35. //else
  36. //{
  37. // entryList.transform.Find("Item1").gameObject.SetActive(true);
  38. // entryList.transform.Find("Item3").gameObject.SetActive(false);
  39. //}
  40. //entryList.transform.Find("Item4").gameObject.SetActive(GlobalDataTemp.pkMatchType == PKMatchType.None);
  41. //transform.Find("BtnFruitMaster").gameObject.SetActive(GlobalDataTemp.pkMatchType == PKMatchType.None);
  42. }
  43. void Start()
  44. {
  45. //增加了对两个按钮事件的响应
  46. prevCellButton.onClick.AddListener(scrollView.SelectPrevCell);
  47. nextCellButton.onClick.AddListener(scrollView.SelectNextCell);
  48. //对选中的当前对象的下标的显示
  49. scrollView.OnSelectionChanged(OnSelectionChanged);
  50. var items = levelInfos.Select(i => new ItemData(i.Name,i.Icon,i.textId,i.languageType))
  51. .ToArray();
  52. scrollView.UpdateData(items);
  53. scrollView.SelectCell(2);
  54. }
  55. void OnDestroy()
  56. {
  57. }
  58. //游戏选择回调 scroll view control
  59. void OnSelectionChanged(int index, bool selected)
  60. {
  61. //string str = $"Selected item info: index {levelInfos[index].Name}";
  62. if (levelInfos[index].startGameType != -1 && selected)
  63. {
  64. JudgmentMode(levelInfos[index].startGameType);
  65. }
  66. //Debug.Log(str);
  67. }
  68. /*
  69. 只有奥运射箭,打野鸡,打野兔,打野狼这四个最初的游戏,才有这三个模式选择;还有三个新的游戏,只有一个本地游戏的模式,那就不用选择,直接进入游戏
  70. */
  71. void JudgmentMode(int _startGameType) {
  72. //_startGameType 这里gameType仅仅用于判断模式
  73. switch (_startGameType)
  74. {
  75. case 1: //奥运射箭
  76. case 3: //打野兔
  77. case 4: //打野鸡
  78. case 5: //打野狼
  79. GameMgr.judgmentGameType = _startGameType;
  80. AudioMgr.ins.PlayBtn();
  81. //进入模式选择页面
  82. ViewMgr.Instance.ShowView<ModeSelectView>();
  83. break;
  84. default:
  85. StartGame(_startGameType);
  86. break;
  87. }
  88. }
  89. //只有一个本地游戏的模式,没有其他模式
  90. void StartGame(int gameType)
  91. {
  92. //Debug.Log("gameType:"+ gameType+ ",GlobalDataTemp.pkMatchType:"+ GlobalDataTemp.pkMatchType);
  93. AudioMgr.ins.PlayBtn();
  94. GameMgr.gameType = gameType;
  95. if (gameType == 15)
  96. {
  97. SceneManager.LoadScene("FruitMaster", LoadSceneMode.Single);
  98. }
  99. else if (gameType == 14)
  100. {
  101. SceneManager.LoadScene("WildAttack", LoadSceneMode.Single);
  102. }
  103. else if (gameType == 13)
  104. {
  105. SceneManager.LoadScene("DuckHunter", LoadSceneMode.Single);
  106. }
  107. }
  108. public void back()
  109. {
  110. AudioMgr.ins.PlayBtn();
  111. ViewMgr.Instance.DestroyView<ChallengeOptionView>();
  112. }
  113. public bool OnMenuBack()
  114. {
  115. ViewMgr.Instance.DestroyView<ChallengeOptionView>();
  116. return true;
  117. }
  118. }