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

Godot 3.5跨平台加载JSON文本文件失败,求正确加载方法

解决Godot跨平台加载JSON文件的问题

核心问题分析

  • System.IO.File依赖系统原生文件系统,Godot导出后(尤其是Android、HTML5平台),res://路径下的文件会被打包为引擎内部资源,无法通过标准IO接口访问。
  • 之前的Godot.File方法失效,大概率是文件未被正确纳入导出包,或缺少错误处理导致问题被隐藏。

步骤1:确保JSON文件被正确打包

  1. 选中编辑器中的branching_dialogue.json文件,在Inspector面板操作:
    • Godot 3.x:将Import As设为TextFile,点击Reimport。
    • Godot 4.x:将Import As设为Resource,选择Resource Type为TextFile,再点击Reimport。
  2. 若不想将文件作为资源导入,需在导出设置的Non-resource Files/Folders中添加路径:res://Story/ChatStories/*.json,确保导出时包含该文件。

步骤2:正确的跨平台加载代码

方法A:使用Godot文件API(推荐)

Godot 3.x(C#)
string filePath = "res://Story/ChatStories/branching_dialogue.json";
File file = new File();
Error openError = file.Open(filePath, File.ModeFlags.Read);

if (openError != Error.Ok)
{
    GD.PrintErr($"打开文件失败:{openError}");
    return;
}

string jsonContent = file.GetAsText();
file.Close();
GD.Print(jsonContent);
Godot 4.x(C#)
string filePath = "res://Story/ChatStories/branching_dialogue.json";
using FileAccess file = FileAccess.Open(filePath, FileAccess.Mode.Read);

if (file == null)
{
    GD.PrintErr($"打开文件失败:{FileAccess.GetError()}");
    return;
}

string jsonContent = file.GetAsText();
GD.Print(jsonContent);

方法B:使用ResourceLoader(更简洁,适合资源类文件)

Godot 3.x(C#)
TextFile jsonText = (TextFile)ResourceLoader.Load("res://Story/ChatStories/branching_dialogue.json");
if (jsonText != null)
{
    string jsonContent = jsonText.Text;
    GD.Print(jsonContent);
}
else
{
    GD.PrintErr("加载JSON文件失败");
}
Godot 4.x(C#)
var jsonText = ResourceLoader.Load<TextFile>("res://Story/ChatStories/branching_dialogue.json");
if (jsonText != null)
{
    string jsonContent = jsonText.Text;
    GD.Print(jsonContent);
}
else
{
    GD.PrintErr("加载JSON文件失败");
}

常见坑点排查

  • 路径问题:绝对不要用./这类相对路径,必须使用Godot标准路径res://(打包资源目录)或user://(用户数据目录,仅用于读写用户生成的内容)。
  • 大小写敏感:Android、HTML5平台对文件名大小写严格,确保代码中的路径与实际文件名完全一致。
  • 导出设置:检查导出模板的Resources选项卡,确认Export Resources已勾选,避免资源被遗漏。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 00:15:21