项目的目录结构怎么设计比较好?

纯新手,看了几个项目. 发现他们都是脚本一个文件夹,素材在另一个文件夹, 想问一下这样做有什么好处吗?
个人感觉每次看一个模块都要好几个文件夹的翻找. 业务逻辑在一个地方, UI在另一个地方, 管理器也在另外的文件夹

我之前是按功能划分的, 比如对战功能, 和对战有关的所有脚本,素材,预制体都放在对战文件夹, 这样会不会有什么弊端?

1赞

我一直都认为这是最差的方式,开发时及其不便

我自己设计的 MKFramework 就是自己的资源放在自己模块文件夹下,公共资源则放在 bundle 根目录下,而且更方便使用自动图集

这个方式的弊端就是多语言图片也要放在模块文件夹下,或者放在一个相同文件夹结构的的地方,或者打包后利用工具替换。

1赞

你自己用得顺手的,就是最好的,你用的不顺,别人说再多都没用。

我喜欢将同一个模块的内容,如图片、代码、prefabs,放在同一目录下

2赞

主要我没有项目经验, 怕现在用的顺手, 然后后面做了一大堆了,突然发现不行, 重构起来就麻烦了 :joy:

看项目规模了, 和项目是否有代码规范, 有的话直接遵循就好了(有很多人总觉自己设计想法是对的, 多人合作的项目总是喜欢炫技, 独立一套自己规范, 这样导致项目极难维护, 我认为统一代码规范才是最好的)
项目规模比较大, 场景比较多, 一个模块就很多资源, 还是按模块分比较好, 当然模块间依赖少一点
项目规模比较小, 界面比较少, 没必要分很多文件夹, 找起来也不方便.
总体就是怎么方便怎么来, 一定要有规范.

把相同类的文件放在一个文件夹可以集中力量解决一类问题: 比如代码问题就看代码文件夹(查js error 处理客诉), 图片问题就改图片文件夹(换图、换皮、迭代图片),配置问题就改配置文件夹(策划改配置表), 实际中这可能对应技术、美术、策划 三类人群,一切规范都是为了减少沟通成本,加快团队合作。

如果全都是你自己干,你怎么弄都行

1赞

谢谢,这下明白为什么要这样划分文件夹了

没有项目经验的话,一般不需要你来考虑这种问题吧,有主程考虑这些规范的东西
没有主程的话,一般都是很小的项目
这种也不需要考虑了,咋方便就怎么做了

2赞

事实上拼UI大部分都是程序做。预制体放一个文件夹,脚本一个文件夹,图片一个文件夹。用过的人都知道拼UI或者改的时候多麻烦

批量改某个种类的文件夹资源这是几乎不会发生的事情,必然会涉及到其他文件夹的资源,喜欢让自己麻烦的都可以这样做:+1:t2::+1:t2:

这种的话,有好处,但是大项目,做分包处理的时候,就麻烦了

你确定不会发生吗?
美术前期给代图,后期换图,你要一个文件夹一个文件夹的找
策划前期给假配置, 后期给真配置, 你要一个文件夹一个文件夹找
主程组织代码审查逻辑,你要一个文件夹一个文件夹找代码

分包的话, 配置下路径映射。大的逻辑是一个分包的资源在一个文件夹里

你换图从来不改节点结构?换完不在预制体界面预览检查?

符合之前节点结构的换图除非和美术及策划提前说明,否则基本都会遇到节点结构不符合最新的效果图

这种东西没必要争论
每个人有自己的工作方式,争论下去没结果的,都会觉得自己的方式更高效

和美术约定好的话基本不用改, 检查你不管那种规范都要检查

如果你要检查。就得重复的切换文件夹或者重复的运行预览,这就是我说的

编辑器选图点图就跳转到文件夹去了, 没那么弱。。

图片文件夹,预制体文件夹,你在批量改必然会在这两个之间切换很多次。而模块化则不会遇到这个问题

而且项目越大你跳转的速度越慢,我只能说你这种方式要么是自己没试过拼界面,要么是项目资源数不多,这种结构基本上是不拼界面的主程决定的。自己认为很好但是下面的人拼 UI 改 UI 得累死

我推荐的是这种:
代码目录: 公共代码模块 A业务代码模块 B业务代码模块 C业务代码模块
资源目录: 公共资源模块 A业务资源模块(含prefab和图片)B业务资源模块(含prefab和图片)C业务资源模块(含prefab和图片)

如果分包: A业务代码和A业务资源组合一个分包; B业务代码和B业务资源组合一个分包
如果不分包:那就打包到一起