PanelControlSimpleCasual.cs 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using TMPro;
  5. using UnityEngine;
  6. using UnityEngine.UI;
  7. namespace LayerLab
  8. {
  9. public class PanelControlSimpleCasual : MonoBehaviour
  10. {
  11. private int page;
  12. private bool isReady;
  13. [SerializeField] private List<GameObject> panelLight = new List<GameObject>();
  14. [SerializeField] private List<GameObject> panelDark = new List<GameObject>();
  15. private TextMeshProUGUI textTitle;
  16. [SerializeField] private Transform panelTransformLight;
  17. [SerializeField] private Transform panelTransformDark;
  18. [SerializeField] private Button buttonPrev;
  19. [SerializeField] private Button buttonNext;
  20. private void Start()
  21. {
  22. textTitle = transform.GetComponentInChildren<TextMeshProUGUI>();
  23. buttonPrev.onClick.AddListener(Click_Prev);
  24. buttonNext.onClick.AddListener(Click_Next);
  25. foreach (Transform t in panelTransformLight)
  26. {
  27. panelLight.Add(t.gameObject);
  28. t.gameObject.SetActive(false);
  29. }
  30. foreach (Transform t in panelTransformDark)
  31. {
  32. panelDark.Add(t.gameObject);
  33. t.gameObject.SetActive(false);
  34. }
  35. panelLight[page].SetActive(true);
  36. panelDark[page].SetActive(true);
  37. isReady = true;
  38. CheckControl();
  39. SetMode();
  40. }
  41. void Update()
  42. {
  43. // if (panels.Count <= 0 || !isReady) return;
  44. if (!isReady) return;
  45. if (Input.GetKeyDown(KeyCode.LeftArrow))
  46. Click_Prev();
  47. else if (Input.GetKeyDown(KeyCode.RightArrow))
  48. Click_Next();
  49. }
  50. private bool isDarakMode = false;
  51. //Click_Prev
  52. public void Click_Prev()
  53. {
  54. if (page <= 0 || !isReady) return;
  55. panelLight[page].SetActive(false);
  56. panelDark[page].SetActive(false);
  57. page -= 1;
  58. panelLight[page].SetActive(true);
  59. panelDark[page].SetActive(true);
  60. if (!isDarakMode)
  61. {
  62. textTitle.text = panelLight[page].name;
  63. }
  64. else
  65. {
  66. textTitle.text = panelDark[page].name;
  67. }
  68. CheckControl();
  69. }
  70. //Click_Next
  71. public void Click_Next()
  72. {
  73. if (page >= panelLight.Count - 1) return;
  74. panelLight[page].SetActive(false);
  75. panelDark[page].SetActive(false);
  76. page += 1;
  77. panelLight[page].SetActive(true);
  78. panelDark[page].SetActive(true);
  79. CheckControl();
  80. }
  81. void SetArrowActive()
  82. {
  83. buttonPrev.gameObject.SetActive(page > 0);
  84. buttonNext.gameObject.SetActive(page < panelLight.Count - 1);
  85. }
  86. //SetTitle, SetArrow Active
  87. private void CheckControl()
  88. {
  89. if (!isDarakMode)
  90. {
  91. textTitle.text = panelLight[page].name.Replace("_", " ");
  92. }
  93. else
  94. {
  95. textTitle.text = panelDark[page].name.Replace("_", " ");
  96. }
  97. SetArrowActive();
  98. }
  99. public void Click_Mode()
  100. {
  101. isDarakMode = !isDarakMode;
  102. SetMode();
  103. CheckControl();
  104. }
  105. void SetMode()
  106. {
  107. if (!isDarakMode)
  108. {
  109. panelTransformLight.gameObject.SetActive(true);
  110. panelTransformDark.gameObject.SetActive(false);
  111. }
  112. else
  113. {
  114. panelTransformLight.gameObject.SetActive(false);
  115. panelTransformDark.gameObject.SetActive(true);
  116. }
  117. }
  118. }
  119. }