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

Godot中如何获取实例化场景自身的存储目录路径

问题原因

get_tree().edited_scene_root的作用是获取编辑器当前打开的正在编辑的根场景节点,运行游戏时这个值等于你启动运行时选中的入口场景。你从Level1场景启动游戏时,这个节点就是Level1的场景根,自然会返回Level1所在的res://Scenes/Levels路径,和Character1自身的存储位置没有关联。

正确实现方法

你需要获取Character1场景自身的存储路径,不需要访问场景树的编辑根属性,直接读取当前场景实例节点自带的源文件路径属性即可,不管场景被实例化到任何其他场景中,这个值都指向场景自身的存储位置:

  • Godot 3.x 版本,直接在Character1挂载的脚本中写:
print(self.filename.get_base_dir())
  • Godot 4.x 版本,对应属性名做了调整,写法为:
print(self.scene_file_path.get_base_dir())

如果你的脚本是挂载在Character1场景的子节点而非根节点上,需要先获取所属场景的根节点再读取路径,Godot 4示例:

var char_scene_root = get_owner()
print(char_scene_root.scene_file_path.get_base_dir())

以上代码运行后会正确输出你预期的res://Scenes/Characters结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 20:57:22