Loading... ## 资源路径和用户路径 ### 资源路径 访问资源时,使用主机OS文件系统布局可能很麻烦且不可移植。为了解决这个问题,`res://`创建了特殊路径 。 `res://`将始终指向项目根目录(project.godot所在的位置,因此res://project.godot始终有效)。 仅当从编辑器本地运行项目时,此文件系统才是读写文件。导出或在其他设备(例如电话或控制台,或从DVD运行)上运行时,文件系统将变为只读状态,并且将不再允许写入。 ### 用户路径 诸如保存游戏状态或下载内容包之类的任务仍需要写入磁盘。为此,引擎确保存在一条始终可写的特殊路径`user://`。 ---------- ## File 将数据永久存储到用户设备的文件系统中并从中读取数据。例如,这可用于存储游戏保存数据或玩家配置文件。 示例 ```GDscript func save(content): var file = File.new() file.open("user://save_game.dat", File.WRITE) file.store_string(content) file.close() func load(): var file = File.new() file.open("user://save_game.dat", File.READ) var content = file.get_as_text() file.close() return content ``` ---------- ## ConfigFile 用于处理INI样式文件的Helper类。本质是封装了文件读写方便保存游戏数据的文件类。 常用方法为 set_value(section, key, value) -> void get_value(section, key) -> Variant 示例 ```GDscript extends Node const SAVE_PATH = "res://config.cfg" var _config_file = ConfigFile.new() var _settings = { "Audio":{ "mute": false, }, "debug":{ "vector_color": Color(1, 0, 1), "area_color": Color(0, 0, 0.2, 0.5) }, } func _ready(): # save_settings() load_settings() print(_settings) func save_settings(): for section in _settings.keys(): for key in _settings[section]: _config_file.set_value(section, key, _settings[section][key]) _config_file.save(SAVE_PATH) func load_settings(): var err = _config_file.load(SAVE_PATH) if err != OK: print("读取配置文件出错! %s" %err) return for section in _settings.keys(): for key in _settings[section]: _settings[section][key] = _config_file.get_value(section, key) print("配置文件加载成功!") ``` 最后修改:2020 年 05 月 16 日 02 : 37 PM © 允许规范转载