Unity中的工作流优化
项目的工程结构

- Asset文件夹
- Library文件夹
· 一般较大,主要是unity编辑器内部使用,不需要将此文件夹参与到代码托管中。每台机器在项目导入时生成的也有可能有差异,一般合作开发时,编辑器使用出现问题时,清理此文件夹并重新生成,可能会解决一些由于缓冲产生的问题。在以后你使用编辑器无法打开工程或打开工程出错时,不妨删除此文件夹重新生成看一看
- Project Settings文件夹与UserSettings文件夹都建议托管到代码工程中
- Temp文件夹与Logs文件夹都不需要进行代码托管
Unity Assets目录中的特殊文件夹及用途

- Editor文件夹:主要用来存放编辑器下使用的一些脚本和资源,一般用来扩展Unity编辑器使用,不会发布到应用程序中,也不会在运行时运行
- Editor Default Resources文件夹:用来存储编辑器下的一些默认资源,这些资源只能通过EditorGUIUtility.Load函数按需进行加载
- Gizmos文件夹:用来存储编辑器中的特殊对象图标,用来标记特殊对象或位置,Gizmos允许将图形添加到Scene视图中,以帮助可视化不可见的设计细节。同样也不会发布到运行时
- Plugins文件夹:用来存储扩展Unity功能的插件,包括C和C++编写的Native DLL
- Resources文件夹:
· 用来存储一些原型设计时可以从脚本中按需加载的资源,通过Resource.Load接口加载此类资源,Assets文件夹中可以添加多个Resources文件夹。同样也可以是Editor文件夹的子文件夹,但其中的资源需要通过Editor脚本进行加载,并会从构建发布中剥离
· 值得注意的是,Resources文件夹通常是Unity项目中性能问题的主要来源。使用不当很容易造成Unity项目构建出现膨胀,导致内存消耗过高、应用程序启动时间显著增加、应用程序包体过大等问题。强烈建议在正式项目中,不要使用Resources目录,应尽量使用AssetsBundle方式进行构建和加载资源
- Standard Assets文件夹:用来存放导入的标准资源包,这个文件夹内的脚本编译优先级最高。一般情况下很少使用到此文件夹(根目录唯一)
- StreamingAssets文件夹:用来存放不随应用程序构建而希望独立于原始文件格式提供的资源,如单独的视频等流媒体文件。此文件夹内的文件可以按原样复制到目标计算机中,然后通过特定的文件夹单独访问该文件(根目录唯一)
补充:
- ScriptTemplates文件夹:脚本模板文件夹,与编辑器文件夹下Editor\Data\Resources\ScriptTemplates文件夹同名,编辑器下的该文件夹内存放的是所有编辑器可调用的脚本模板




而编辑器下的该文件夹,会随unity编辑器的更新而重置,所以需要把自己的模板放在Asset下的ScriptTemplates文件夹内
Assets目录结构设计
- 合理的文件夹结构有助于资源分类、工作流优化与AssetsBundle资源的打包
- 根据项目大小不同、游戏类型的不同往往设计上也存在差异,并不能完全做到标准化。但在设计上还是有一些原则可以帮助搭建比较合理的目录结构






