如何在Godot 4.3中切换场景时保存全屏状态
问题解决:全屏开关场景切换后状态不同步
问题核心是场景重新加载时,开关控件没有同步当前窗口的实际全屏状态,导致显示状态和游戏实际模式脱节。
解决方案步骤
- 在选项菜单场景的
_ready()生命周期函数中,主动读取当前窗口的模式,同步到开关控件的显示状态 - 确保开关触发的逻辑和窗口状态一一对应
修改后的代码示例
假设你的全屏开关节点名为fullscreen_toggle(比如是CheckBox或ToggleButton):
func _ready() -> void: # 场景加载时,同步开关状态到当前窗口的实际模式 var current_is_fullscreen = get_window().get_mode() == Window.MODE_FULLSCREEN $fullscreen_toggle.button_pressed = current_is_fullscreen func _on_fullscreen_toggled(toggled_on: bool) -> void: # 根据开关状态切换窗口模式 if toggled_on: get_window().set_mode(Window.MODE_FULLSCREEN) else: get_window().set_mode(Window.MODE_WINDOWED)
原理说明
场景切换后,新创建的选项菜单实例默认不会感知之前的窗口状态,通过_ready()函数主动获取当前窗口的模式并设置开关状态,就能让开关显示和游戏实际全屏状态保持一致,避免需要点击两次才能切换的问题。
内容的提问来源于stack exchange,提问作者DaGoldenGam3r
相关产品推荐
相关产品推荐

