Godot 4.0稳定版Mono启用OpenXR后程序启动前崩溃求助
针对你遇到的Quest2通过Virtual Desktop连接SteamVR时,Godot项目启动后Logo显示10秒关闭、_ready函数未执行的问题,可按以下步骤排查:
检查OpenXR运行时优先级
Windows下SteamVR和Meta的OpenXR运行时可能存在冲突。打开设置 > 系统 > 显示 > 图形设置 > 高级图形设置,确认Godot项目的默认图形运行时指向SteamVR;或者直接在SteamVR设置中,将SteamVR设为系统默认OpenXR运行时。调整XR初始化时机
当前_ready函数的初始化逻辑可能因Godot启动阶段的资源竞争无法执行,尝试将代码移至_enter_tree并延迟初始化:extends Node3D var interface : XRInterface func _enter_tree(): print('start') # 延迟1帧避免启动阶段的资源冲突 await get_tree().process_frame interface = XRServer.find_interface("OpenXR") if interface and interface.is_initialized(): get_viewport().use_xr = true同时在项目设置中关闭
XR > Startup > Auto Initialize,禁止Godot自动启动XR。验证Virtual Desktop连接状态
启动SteamVR后,确认Quest2已被正常识别(SteamVR面板显示头显、控制器状态正常);关闭Virtual Desktop的“性能优化”或“虚拟桌面模式”,避免与Godot的XR渲染逻辑冲突。启用调试日志定位错误
启动项目时添加命令行参数--verbose,启动后查看%APPDATA%\Godot\app_userdata\[你的项目名]\logs下的日志文件,重点关注OpenXR初始化阶段的报错信息;同时可开启SteamVR的开发者详细日志,排查连接层面的问题。检查项目XR配置
打开项目设置,确认XR > OpenXR > Enabled已勾选,且XR > OpenXR > Runtime选择SteamVR(若有选项),避免运行时识别错误。
内容的提问来源于stack exchange,提问作者Hopeijay

