Unity项目是否有标准/推荐的目录结构?

时间:2017-06-05 07:29:13

标签: unity3d

我的下一个项目将使用Unity 5.6。这将是一款游戏,它将利用AssetBundle进行远程场景加载。之后将逐步添加新场景。因此,我希望我不会使用太糟糕的结构,需要在项目的后期阶段进行大量更改。 Unity项目是否有标准/推荐的目录结构?

2 个答案:

答案 0 :(得分:13)

在一天结束时,它归结为最适合您的任何工作,并使项目最有意义。在小型独奏项目上工作,我发现保持一个简单的文件夹结构分隔资产类型已经很好地保持组织(纹理,脚本,预制件,精灵等)。另一种流行的方法是按对象类型组织:

Animals
├── Crow
│   ├── script
│   └── sprite
└── Snake
    ├── script
    └── sprite

根据我的经验,通过Scene组织通常不会很好地完成工作,特别是在场景之间共享资源的情况下 - 东西往往会丢失。

我建议花一些时间来搞乱你的组织,看看哪种方式适合你,特别是如果这是你的第一个团结项目。在启动后移动文件不会破坏检查器中的关联,假设您没有在脚本中搜索目录。

如果您需要更多帮助决定,请查看下面的一些链接。特别是Link 3对这个主题进行了非常冗长的讨论。

答案 1 :(得分:10)

Unity确实鼓励以下结构:

Assets
├── Animations
│   └── ...
├── Editor
│   └── ...
├── Models
│   └── ...
├── Prefabs
│   └── ...
├── Scripts
│   └── ...
└── Textures
    └── ...

这是由于Unity认为的面向对象方式:每个文件夹仅包含资产所需的特定类型的信息。当您查看Unity中的Special Folders时,这一点尤为明显。

即使你看着他们建立自己的standard assets,你也会注意到这种结构。我希望你不会有很多不与其他场景共享任何资产的场景,因为这会浪费很多资源。

标准资产中值得注意的是,在他们的演示中,他们有一个名为Menu的文件夹,其中包含自己的Scripts,Prefabs和Sprites文件夹。

所以我建议你做以下事情(注意:这是我的观点):

  • 尝试将所有内容分成自己的文件夹,而不分组为资源但分为文件类型
  • 在某些情况下,场景拥有自己永远不会共享的资源,您可以将它们分组到一个单独的文件夹中
  • 我真的不喜欢"静态资产"和"动态资产"在link1 ryemoss 的blogentry提出的文件夹结构中给了你。动态加载的资源要求您始终使用Resources文件夹,因此请使用此文件夹并将您的分组文件夹(" Bundle1"," Bundle2"等)放入其中。
  • 切勿混淆您的系统。如果你认为某些东西不适合,那就改变它。但是为整个项目改变它。保持一致。
  • 不要通过添加下划线或等效的前缀来强制文件夹向上或向下移动。
  • 在某处记录您的结构。根据项目的大小,它可能会有所帮助。但是文件夹结构就像代码一样,如果他们不需要评论来描述发生了什么,它(大多数情况下)是最好的。