介绍
文件系统是引擎开发中的另一个热门话题。文件系统管理资产的存储方式和访问方式。精心设计的文件系统允许多个开发人员在协作时编辑相似的源文件和资产。
【Godot文件系统介绍】Godot引擎的早期版本(以及Godot命名之前的先前迭代)使用数据库。它存储资产并分配一个ID。还尝试了其他方法, 例如本地数据库, 带有元数据的文件等。最后, 单纯形方法胜出, Godot将所有资产存储在文件系统中作为文件。
实作
文件系统将资源存储在磁盘上。从脚本到场景或PNG图像的所有内容都是引擎的资源。如果资源具有引用磁盘上其他资源的属性, 则还将包括这些资源的路径。如果资源具有内置的子资源, 则该资源将与所有捆绑的子资源一起保存在单个文件中。例如, 字体处理通常与字体设计结合在一起。
通常, Godot文件系统避免使用元数据文件。原因很简单, 当前的资产管理器和VCS比我们实施的任何工具都要好得多, 因此Godot会尽力与SVN, Git, Mercurial, perforce等结合使用。
文件系统内容示例:
/enemy/enemy.tscn/enemy/enemy.gd/enemy/enemysprite.png/player/player.gd
Project.godot
project.godot文件是项目描述文件, 总是在项目的根目录下找到。它的位置定义了根的位置。这是Godot在打开项目时看到的第一个文件。
该文件具有使用win.ini格式的纯文本格式的项目配置。即使是空项目.godot也可以用作新项目的基本定??义。
路径定界符
Godot仅支持/作为限制。出于可移植性原因而这样做。所有操作系统都支持Windows, 甚至支持路径, 例如c:\ project \ Project。 Godot必须输入c:/project/project.godot。
资源路径
使用主机OS文件系统布局时, 对资源的访问可能很麻烦且不可移植。为了解决这个问题, 创建了单独的路径res://。
路径Res://将始终指向项目根目录(project.godot所在的位置, 因此, 实际上Res://project.godot仍然有效)。
在本地运行项目时, 该文件系统是来自编辑器的只读文件系统。当导出或在其他设备上运行(例如从电话, 控制台或DVD)时, 文件系统将变为只读状态, 并且不允许写入权限。
用户路径
诸如保存游戏状态或下载内容包之类的各种任务仍然需要写入磁盘。为此, 引擎确保特定路径是用户://, 始终是可写的。
主机文件系统
或者, 也可以使用主机文件系统路径, 但不建议将其用于已发布的产品, 因为不能保证这些路径在所有平台上都可以使用。但是, 在Godot中编写开发工具时使用主机文件系统路径可能会很有用!
缺点
这种简单的文件系统设计有一些缺点。第一个问题是, 周围的资产(在项目中重新命名或从项目中的一条路径移动到另一条路径)将破坏对这些资产的现有引用。必须重新定义这些引用以指向新的资产位置。
另一个是Windows和macOS文件和路径名不区分大小写。如果在不敏感的主机文件系统中工作的开发人员将属性另存为” myfile.PNG” , 然后将其称为” myfile.png” , 则可以在其平台上正常工作, 但在Linux上则无法正常工作平台。 Android等
第二个是Windows和macOS文件和路径名不区分大小写。如果在不区分大小写的主机文件系统中工作的开发人员将属性另存为” myfile.PNG” , 然后将其称为” myfile.png” , 则它将在其平台上正常工作, 但在Linux等其他平台上则无法正常工作。 Android等。这也适用于导出的二进制文件, 该文件使用压缩包存储所有文件。
建议我们的团队在与Godot一起使用时明确定义文件的命名约定!一种简单的傻瓜协议仅允许使用小写的文件名和路径名。
推荐阅读
- ES6运算符介绍和用法示例
- ES6 void关键字
- Android Studio错误日志-注解报错Annotation processors must be explicitly declared now.
- Android从 HttpResponse (或者InputStream) 获取字符串内容的代码
- Android Protobuf应用及原理
- Android移动客户端性能测试浅谈——电量
- 自己动手写Android VIP视频解析APP
- Qt做发布版,解决声音和图片中文字体乱码问题(需要在main里写上QApplication::addLibraryPath("./plugins")才能加载图片,有图片,很清楚)
- CMU-CSAPP-Lab2拆解二进制炸弹