You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 07:31:03