using UnityEngine; using UnityEngine.UI; namespace GameFramework { /// /// 主菜单 UI 控制器。 /// 支持开始游戏、设置、制作人员、退出游戏。 /// 修复:场景重载后自动重新查找 UI 引用,避免 DontDestroyOnLoad 导致的空引用问题。 /// public class MainMenuUIController : MonoBehaviour { [Header("Buttons")] [SerializeField] Button startButton; [SerializeField] Button settingsButton; [SerializeField] Button creditsButton; [SerializeField] Button quitButton; [Header("Settings Panel")] [SerializeField] GameObject settingsPanel; [SerializeField] Button settingsBackButton; [Header("Credits Panel")] [SerializeField] GameObject creditsPanel; [SerializeField] Button creditsCloseButton; void Start() { // 自动查找(解决场景重载后引用失效问题) if (startButton == null) startButton = FindButton("StartButton"); if (settingsButton == null) settingsButton = FindButton("SettingsButton"); if (creditsButton == null) creditsButton = FindButton("CreditsButton"); if (quitButton == null) quitButton = FindButton("QuitButton"); if (settingsPanel == null) settingsPanel = GameObject.Find("SettingsPanel"); if (settingsBackButton == null && settingsPanel != null) settingsBackButton = settingsPanel.GetComponentInChildren