文件系统2025年3月17日 | 阅读 3 分钟 引言文件系统是引擎开发的另一个热门话题。文件系统管理资产的存储和访问方式。一个设计良好的文件系统允许多个开发人员在协作的同时编辑类似源文件和资产。 Godot引擎的早期版本(以及Godot被命名之前的早期迭代)使用了一个数据库。它存储资产并分配一个ID。也尝试了其他方法,例如本地数据库、带有元数据的文件等。最终,简单方法胜出,Godot 将所有资产作为文件存储在文件系统中。 实施文件系统将资源存储在磁盘上。从脚本到场景或PNG图像的任何内容都是引擎的资源。如果资源具有引用磁盘上其他资源的属性,则也会包含指向这些资源的路径。如果一个资源有内置的子资源,则该资源将与所有捆绑的子资源一起保存在一个文件中。例如,字体处理通常与字体设计相结合。 总的来说,Godot文件系统避免使用元数据文件。原因很简单,当前的资产管理器和VCS比我们实现的任何东西都好得多,所以Godot尽力与SVN、Git、Mercurial、Perforce等配合使用。 文件系统内容的示例 Project.godotproject.godot文件是项目描述文件,始终位于项目的根目录下。它的位置定义了根目录的位置。这是Godot打开项目时看到的第一个文件。 该文件使用win.ini格式以纯文本形式包含项目配置。即使是空的project .godot也可以用作新项目的基本定义。 路径分隔符Godot仅支持 / 作为限制。这样做是出于可移植性的原因。所有操作系统都支持 Windows,即使是路径,例如c: \ project \ Project. Godot 必须输入 c: /project/project.godot。 资源路径当使用主机OS文件系统布局时,访问资源可能会很麻烦且不可移植。为了解决这个问题,创建了单独的路径res: //。 路径Res: //将始终指向项目根目录(project.godot所在的位置,所以实际上,Res: //project.godot仍然有效)。 此文件系统在本地运行项目时从编辑器是只读的。当导出或在不同设备(例如手机或游戏机或DVD)上运行时,文件系统将变为只读,并且不允许写权限。 用户路径仍然需要写入磁盘以执行各种任务,例如保存游戏状态或下载内容包。为此,引擎确保特定路径为user: //,该路径始终可写。 主机文件系统或者,也可以使用主机文件系统路径,但对于已发布的产品不推荐使用,因为这些路径不能保证在所有平台上都能正常工作。但是,在Godot中编写开发工具时使用主机文件系统路径可能会很有用! 缺点这种简单的文件系统设计有一些缺点。第一个问题是周围的资产(重命名它们或在项目内从一个路径移动到另一个路径)将破坏对这些资产的现有引用。必须重新定义这些引用以指向新的资产位置。 另一个问题是Windows和macOS文件和路径名不区分大小写。如果开发人员在不区分大小写的主机文件系统中将属性保存为"myfile.PNG",但随后将其称为"myfile.png",则它将在其平台上运行良好,但在其他平台上(如Linux)则不行。 Android等。 第二个问题是Windows和macOS文件和路径名不区分大小写。如果开发人员在不区分大小写的主机文件系统中将属性保存为"myfile.PNG",但随后将其称为"myfile.png",则它将在其平台上运行良好,但在其他平台上(如Linux)则不行。Android等。这也可能适用于导出的二进制文件,这些文件使用压缩包来存储所有文件。 建议我们的团队在与Godot合作时明确定义文件的命名约定!一个简单的万无一失的协议是只允许使用小写的文件和路径名。 下一个主题Godot中的SceneTree |
我们请求您订阅我们的新闻通讯以获取最新更新。