Unity(C#)菜单初始化隐藏问题:如何设置菜单默认关闭?
Unity菜单默认隐藏的代码修改方案
当前代码的问题在于初始化时只是读取菜单对象的现有激活状态,没有强制实现默认隐藏的需求。以下是调整后的代码及说明:
修改点说明
- 初始化阶段直接强制菜单隐藏,同步状态变量,彻底摆脱对场景中对象初始设置的依赖
- 保留原有的按键切换逻辑不变,同时优化了按键判断的灵活性
修改后的完整代码
[Header("Keybinds")] public KeyCode Escape = KeyCode.Escape; GameObject ReturnToMainMenuObject; bool ReturnToMainMenuIsOpen = false; void Start() { ReturnToMainMenuObject = GameObject.Find("ReturnToMainMenu"); // 强制设置菜单初始隐藏,并同步状态变量 ReturnToMainMenuIsOpen = false; ReturnToMainMenuObject.SetActive(ReturnToMainMenuIsOpen); } void Update() { if (Input.GetKeyUp(Escape)) // 改用定义的公共变量,方便在Inspector中调整按键 { ReturnToMainMenuIsOpen = !ReturnToMainMenuIsOpen; ReturnToMainMenuObject.SetActive(ReturnToMainMenuIsOpen); Debug.Log("ReturnToMainMenuIsOpen: " + ReturnToMainMenuIsOpen); } }
额外小提示:原代码Update方法里用了硬编码的KeyCode.Escape,改成公共变量Escape后,不用修改代码就能在Unity编辑器的Inspector面板里切换触发按键,灵活性更高。
内容的提问来源于stack exchange,提问作者RED light editor
相关产品推荐
相关产品推荐

