Godot 4.0 文件读取(C#)

搞半天才弄明白Godot文件操作。

Godot的文档总是试图让我使用自定义Resource来支持文件操作,但是我只需要读取纯文本。

读取纯文本

读取纯文本的方式如下:

//Godot.FileAccess这个类和C#自带的类名称一致,有时需要指定别名。
using FileAcc = Godot.FileAccess;

string ReadAll(string path)
{
	//path是Godot管理下的文件路径,如 "res://myfolder/myfile.txt"
	using var fl = FileAcc.Open(path, FileAcc.ModeFlags.Read);
	if (fl == null)
	{
	    var err = FileAcc.GetOpenError();
	    GD.Print(err);
	}
	return fl.GetAsText();
}

关于文件路径的约定,参考
https://docs.godotengine.org/en/stable/tutorials/io/data_paths.html

逐行读取

如果需要逐行读取,根据Godot自带的注释得知,应该这样写

while (fl.GetPosition() < fl.GetLength())
{
    tststr = fl.GetLine();
}

注意事项

  • 写入纯文本的方式类似,但是需要注意项目输出后就不能写入res://目录下的内容了。
    user://目录下的内容总是可读可写的。

  • 输出项目时,可能一些文件会被忽略而不会存在于最终的程序中。
    需要在导出项目时注意配置:

image

参考

https://docs.godotengine.org/en/stable/tutorials/io/saving_games.html#

作者:qiiimiu

出处:https://www.cnblogs.com/qiiimiu/p/17347078.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   期miu  阅读(1037)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up dark_mode palette
选择主题