Godot场景切换异常求助:新场景元素与主场景重叠显示
问题排查与解决方案
可能原因及修复步骤
1. 主场景被标记为Persistent
如果主场景根节点开启了Persistent属性,切换场景时它不会被自动移除,新场景会直接叠加在主场景上方。
- 打开主场景,选中根节点
- 在Inspector面板的「Node」类别下找到Persistent选项,取消勾选
2. 场景切换的执行时机异常
在_process函数中直接调用change_scene可能触发帧渲染冲突,建议延迟执行切换逻辑:
修改代码如下:
func _process(delta): if one_is_pressed and encounter: $HUD/EventUnfolder.hide() get_tree().paused = false enemy_attack = true encounter = false one_is_pressed = false if one_is_pressed and market: $HUD/EventUnfolder.hide() one_is_pressed = false market = false # 新增:避免重复触发切换逻辑 call_deferred("change_to_market") # 延迟执行场景切换 func change_to_market(): get_tree().change_scene("res://Market.tscn")
3. 排查重复加载场景的逻辑
检查项目中其他代码,是否存在通过instance()创建Market场景并添加到当前场景的情况(而非使用change_scene)。如果有,需移除该逻辑,或在切换前手动清理已添加的场景节点。
4. 验证场景路径正确性
确认res://Market.tscn路径完全正确,可尝试加载其他场景测试是否仍出现叠加问题,排除路径错误导致的异常。
内容的提问来源于stack exchange,提问作者AbsolutePickle42
相关产品推荐
相关产品推荐

