using UnityEngine; /// /// 暂停按钮。点击后在指定父节点下实例化暂停菜单预制体。 /// 菜单预制体、父节点都在 Inspector 里指定,代码不查找节点。 /// [DisallowMultipleComponent] public class PauseButton : MonoBehaviour { [Tooltip("点击后要显示的暂停菜单预制体")] [SerializeField] private GameObject pauseMenuPrefab; [Tooltip("菜单生成到哪个父节点下;留空则用本按钮的父节点(一般是 Canvas)")] [SerializeField] private Transform menuParent; private GameObject _instance; public void OnPauseClicked() { if (pauseMenuPrefab == null) { Debug.LogError("[PauseButton] 没有指定暂停菜单预制体(pauseMenuPrefab)。", this); return; } if (_instance != null) // 菜单已经开着,不重复生成 return; Transform parent = menuParent != null ? menuParent : transform.parent; _instance = Instantiate(pauseMenuPrefab, parent); Time.timeScale = 0f; // 暂停游戏;不需要真暂停就删掉这一行 } }