关于文件管理的一个想法

最近看着项目里复杂错乱的文件结构。突然有个想法。现在游戏引擎的文件管理目录只是单纯地使用文件路径树,再加上一定的搜索功能。这对于游戏开发,特别是一些体量较大的游戏开发来说是不太够的。
具体地说,就是文件的分类管理只用文件夹不能很好地处理。有的开发者可能会倾向于按功能块划分文件夹,将某个功能相关的代码、资源都放一起。有的可能倾向于按文件类型分好,预制体、代码、图片资源、音频等。
我个人倾向于后者,按类别分好。但是最近发现,如果按这种方式分好,不适合模块化封装。例如有人封装了一个功能模块,那么肯定是代码资源都在一个大文件夹中的。
深入思考一下,我觉得如果游戏引擎能专门做一个为开发设计的资源管理界面就好了。比如将文件设置一些标签,可以按标签分类搜索。
我可以搜索按钮,展示所有的按钮图、按钮预制体
我可以搜索蓝色,展示所有设置了蓝色标签的图片

1赞

虽然我还是一个把所有资源文件都放在resources下按类型分类的小新手 不过也知道模块化加载的重要性

我觉得文件管理于资源加载而言 肯定是按功能块划分更优 而于日常开发而言 如果能有个官方的资源管理插件能够辅助开发就好了 加载还是按实际的文件路径来 然后把资源的搜索和管理另外搞一套

image 你一定是用ipad的

按文件夹其实也可以这2个思路同时用,一般是先资源类型分根部大文件夹,然后再按功能划分小文件夹。
你说的分标签,其实也不是很彻底,标签是平行的,在分类上会有重复。
如果真的要整理资源,比较好的方式是,文件路径全部uuid化,或者存到数据库里面。然后做多个树状索引,一个树索引资源类型,一个树索引功能类型。然后管理器就切换显示树结构就可以了。不过加资源的时候需要添加多个树索引。所以可能比较麻烦点。
至于功能模块封装,就比较简单了,只要打包的时候,按某个树索引的节点结构设置打包,一颗功能子树一个ab包,就封装好了。
不好的地方,就是不能在系统文件管理器层面看分类了,就只能通过能读树索引的编辑器看。