MainMenuController.cs 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. using SimpleJSON;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Reflection;
  5. using TMPro;
  6. using UnityEngine;
  7. using UnityEngine.UI;
  8. using WS;
  9. public class MainMenuController : Controller<MainMenuView, MainMenuModel>
  10. {
  11. List<string> courses = new List<string>
  12. {
  13. "中药检索","中药学古文献","药物化学","药物化学","药物化学","药物化学"
  14. };
  15. protected override void BindingViewModel()
  16. {
  17. refreshCourseList();
  18. ToggleGroupAddListener();
  19. }
  20. public override void OpenView()
  21. {
  22. base.OpenView();
  23. }
  24. void refreshCourseList()
  25. {
  26. ReferenceCollector[] rcArray = _View.group.GetComponentsInChildren<ReferenceCollector>();
  27. for (int i = 0; i < rcArray.Length; i++)
  28. {
  29. rcArray[i].GetComponent<TextMeshProUGUI>("Index").text = i.ToString();
  30. rcArray[i].GetComponent<TextMeshProUGUI>("CourseName").text = courses[i];
  31. }
  32. }
  33. void ToggleGroupAddListener()
  34. {
  35. Toggle[] toggles = _View.group.GetComponentsInChildren<Toggle>();
  36. for (int i = 0; i < toggles.Length; i++)
  37. {
  38. var index = i;
  39. var rc = toggles[index].GetComponent<ReferenceCollector>();
  40. rc.GetComponent<Button>("EnterBtn").onClick.AddListener(OnEnterBtnClick);
  41. toggles[index].onValueChanged.AddListener((isOn) =>
  42. {
  43. Color color;
  44. ColorUtility.TryParseHtmlString("#FFDC63",out color);
  45. rc.GetComponent<TextMeshProUGUI>("Index").color=isOn?color:Color.black;
  46. rc.GetComponent<TextMeshProUGUI>("CourseName").color = isOn ? color : Color.black;
  47. rc.Get<GameObject>("EnterBtn").SetActive(isOn);
  48. toggles[index].GetComponent<Canvas>().sortingOrder = isOn?1001:1000;
  49. });
  50. }
  51. toggles[0].isOn = true;
  52. }
  53. void OnEnterBtnClick()
  54. {
  55. SearchTypeEntryController controller = FacadeComponent.Instance.CreateController<SearchTypeEntryController>();
  56. controller.OpenView();
  57. }
  58. }
  59. public class MainMenuView : View
  60. {
  61. public Transform group;
  62. public Button nextPageBtn;
  63. public Button lastPageBtn;
  64. List<string> courses = new List<string>
  65. {
  66. "中药检索","中药学古文献","药物化学","药物化学","药物化学"
  67. };
  68. public override void LoadInit()
  69. {
  70. var rc = UIGameObject.GetComponent<ReferenceCollector>();
  71. group = rc.GetComponent<Transform>("CourseList");
  72. nextPageBtn = rc.GetComponent<Button>("NextPageBtn");
  73. lastPageBtn = rc.GetComponent<Button>("LastPageBtn");
  74. }
  75. public void InitCourseList()
  76. {
  77. //var choiceItemPre = Resources.Load<GameObject>("UI/Common/Course");
  78. //for (int i = 0; i < courses.Count; i++)
  79. //{
  80. // var choiceItem = GameObject.Instantiate(choiceItemPre, group);
  81. // var rc = choiceItem.GetComponent<ReferenceCollector>();
  82. // TextMeshProUGUI courseName = rc.GetComponent<TextMeshProUGUI>("CourseName_Normal");
  83. // courseName.text = courses[i];
  84. // Toggle toggle = choiceItem.GetComponent<Toggle>();
  85. // toggle.group = group.GetComponent<ToggleGroup>();
  86. //}
  87. }
  88. }
  89. public class MainMenuModel : Model
  90. {
  91. public override void InitProperty()
  92. {
  93. }
  94. }