MainUI.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using System;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5. namespace VRPlatform
  6. {
  7. public class MainUI : MonoBehaviour
  8. {
  9. private int _currentNavIndex = 0;
  10. [SerializeField]
  11. private Text _titleText;
  12. // 导航栏
  13. [SerializeField]
  14. private List<Button> _navButtons = new List<Button>();
  15. // 内容UI
  16. [SerializeField]
  17. private List<ContentUI> _contentUIs = new List<ContentUI>();
  18. private void Awake()
  19. {
  20. for (int i = 0; i < _navButtons.Count; i++)
  21. {
  22. int index = i;
  23. _navButtons[i].onClick.AddListener(() =>
  24. {
  25. _titleText.text = _navButtons[index].GetComponentInChildren<Text>().text;
  26. OnNavButtonClick(index);
  27. });
  28. }
  29. }
  30. private void OnNavButtonClick(int index)
  31. {
  32. if (_currentNavIndex == index)
  33. {
  34. return;
  35. }
  36. _contentUIs[_currentNavIndex].gameObject.SetActive(false);
  37. _currentNavIndex = index;
  38. _contentUIs[_currentNavIndex].gameObject.SetActive(true);
  39. _contentUIs[_currentNavIndex].Refresh();
  40. }
  41. }
  42. }