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

Godot 4.1.1中如何检查场景是否存在?加载报错求助

Godot 4.1.1 批量加载场景问题解决

你的写法之所以报错,是因为Godot的load()函数找不到资源时,不会返回null,而是直接抛出加载失败的错误,导致你的else分支根本没机会执行。

正确的资源存在性检查方式

用ResourceLoader.exists()来判断场景是否存在,这个函数只会返回true/false,不会触发报错。

优化后的代码

func get_room_array():
    var i = 1
    while true:
        var room_path = get_room_path(i)
        # 先检查路径对应的场景是否存在
        if ResourceLoader.exists(room_path):
            # 确认存在后再加载,避免报错
            var room_scene = load(room_path)
            room_array.append(room_scene)
        else:
            break
        i += 1

额外提醒

  • 别重复调用get_room_path(i)和load(),把结果存进变量里,能减少不必要的性能消耗。
  • 要保证get_room_path(i)返回的是完整正确的资源路径,比如res://scenes/rooms/room_1.tscn,路径写错再怎么检查也找不到资源。
  • 如果要加载的场景数量很多,也可以试试异步加载的ResourceLoader.load_threaded_request(),避免卡住游戏主线程,但新手先把同步加载的逻辑搞清楚更合适。

内容的提问来源于stack exchange,提问作者Azashiro Merume

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 12:03:12