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

use*_*155 9 unity-game-engine

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

rye*_*oss 13

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

Animals
??? Crow
?   ??? script
?   ??? sprite
??? Snake
    ??? script
    ??? sprite
Run Code Online (Sandbox Code Playgroud)

根据我的经验,按场景组织通常不会很好地完成工作,尤其是在场景之间共享资产的情况下 - 东西往往会丢失.

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

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


Max*_*lay 10

Unity确实鼓励以下结构:

Assets
??? Animations
?   ??? ...
??? Editor
?   ??? ...
??? Models
?   ??? ...
??? Prefabs
?   ??? ...
??? Scripts
?   ??? ...
??? Textures
    ??? ...
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

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