using UnityEngine; using UnityEngine.UI; public class UIManager : MonoBehaviour { [Header("管理器引用")] [SerializeField] private StepManager _stepManager; [SerializeField] private InteractionSystem _interactionSystem; [Header("=== 顶部提示栏 ===")] [SerializeField] private GameObject _tipPanel; [SerializeField] private Text _tipText; [Header("=== 详细操作说明面板 ===")] [SerializeField] private GameObject _detailPanel; [SerializeField] private Text _detailText; [Header("=== 对话气泡 ===")] [SerializeField] private GameObject _dialogueBubble; [SerializeField] private Text _dialogueText; [Header("=== 画中画视频 ===")] [SerializeField] private GameObject _videoPanel; [Header("=== 仿真导航栏按钮 ===")] [SerializeField] private Button _btnFullScreen; [SerializeField] private Button _btnPrevious; [SerializeField] private Button _btnNext; [SerializeField] private Button _btnSwitchMode; [SerializeField] private Button _btnReturn; [SerializeField] private Text _btnSwitchModeLabel; [Header("=== 底部进度条 ===")] [SerializeField] private Slider _progressBar; [SerializeField] private Text _progressText; [Header("=== 弹窗 ===")] [SerializeField] private ExamPopup _examPopup; [SerializeField] private GameObject _endPanel; private void Start() { Debug.Log("=== UIManager 初始化开始 ==="); HideVideo(); if (_endPanel != null) _endPanel.SetActive(false); if (_stepManager == null) _stepManager = FindObjectOfType(); if (_interactionSystem == null) _interactionSystem = FindObjectOfType(); BindEvents(); BindButtons(); BindNavbarButtons(); Debug.Log("=== UIManager 初始化完成 ==="); } private void BindNavbarButtons() { var experimentPanel = GameObject.Find("ExperimentPanel"); if (experimentPanel == null) return; var navbar = experimentPanel.transform.Find("Navbar"); if (navbar == null) return; var btnFS = navbar.Find("FullScreen"); if (btnFS != null) { var btn = btnFS.GetComponent