性能优化(6)Unity工作流(1)——工程目录与Assets目录设置

  1. 1. Unity中的工作流优化
  2. 2. 项目的工程结构
  3. 3. Unity Assets目录中的特殊文件夹及用途
    1. 3.0.1. 补充:
  • 4. Assets目录结构设计

  • 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资源的打包
    • 根据项目大小不同、游戏类型的不同往往设计上也存在差异,并不能完全做到标准化。但在设计上还是有一些原则可以帮助搭建比较合理的目录结构