Unity开发规范:目录规范

作者:LouisLiu
2023-01-05
17 12 0

一个高质量的游戏工程第一步就是打造健壮的文件目录,一个优质的文件目录结构能够帮助团队高效协作和资源管理。本文提供了一种通用的 unity 工程目录结构帮助团队快速打造健壮高效的工程框架。

通用目录结构

Assets 主目录

  • Editor 编辑器
  • Gizmos 标识
  • Plugins 插件
  • Resources 资源 
    • Animations 动画
    • Audios 音频
    • Fonts 字体
    • Materials 材质
    • Models 模型
    • Prefabs 预制体
    • SFXs 特效
    • Sprites 精灵
    • Videos 视频
    • 具体业务文件夹
  • Scenes 场景
  • Scripts 脚本 
    • Commons 通用类
    • Shaders 自己写的 shader
    • Tools 工具类
    • 具体业务文件夹
  • Standard Assets 标准资源
  • StreamingAssets 流文件资源

以上蓝色标注的项目为特殊文件夹。Unity 保留了一些特殊的文件名称用来做一些特殊的用途,如果你的文件夹命名了这类的文件名,引擎内部就会对它进行一些特殊的处理,这些特殊目录对脚本的编译也会有影响。

文件夹说明

Assets 主目录

项目资源的主目录,unity 项目中的所有资源都必须在此目录下才能在 project 面板中出现。


Editor 编辑器目录

放在此目录的脚本将被视为编辑器脚本,编辑器脚本为编辑器提供一些扩展或定制功能,但是无法在运行时使用。editor 文件夹可以放置在 assets 目录中的任意子目录中。


Gizmos 标识目录

gizmos 允许你将一些图标添加到场景中,作为一些辅助标示,比如可以标示出一些正常情况下看不见的线或点,使用 gizmos.drawicon 方法可以在场景中绘制图标用来做一些特殊的标记,当然前提是你得将图标放到 gizmos 文件夹中,这样 drawicon 方法才能找到它。需要注意的是,gizmos 目录需要全局唯一,和 editor 不一样,它得固定放到跟目录下,就是说它的上一级只能是 assets。

 

Plugins 插件目录

插件文件夹,用来放置一些三方的库插件,比如 ngui,或者是一些 dll 库,比如 json、dotween 等三方库,也可以放置你自己封装的 dll 文件。同 gizmos 一样,全局唯一,必须在根目录下。

 

Resources 资源目录

资源文件夹,主要的美术素材、音频、视频、模型、特效、动画等资源存放地址。同 editor 一样,可以在主目录下任意子目录中存在。该目录下的内容在打包时都会被打到发布包中。

工程版本资源直接使用 Resource 加载方式,发布阶段根据项目需求统一切换资源加载方案。

特点:

  • 只读,即不能动态修改。所以想要动态更新的资源不要放在这里。
  • 会将文件夹内的资源打包集成到.asset 文件里面。
  • 主线程加载。

子目录:

  • Animations 动画资源(片段资源放在 Resources/Animations/xxx/anim 中)控制器要和 anim 文件同级
  • Audios 音频文件
  • Fonts 字体
  • Materials 材质(贴图和材质存放在同级目录下)
  • Models 美术模型(模型和贴图材质文件夹存放在同级目录下)
  • Prefabs 预制体
  • SFXs 特效资源
  • Sprites 精灵资源
  • Videos 视频文件
  • 具体业务文件夹   具体业务需要的特殊资源存放的文件夹(例如 Scriptobject 类型的数据资源文件、骨骼资源文件等)

 

Scenes 场景目录

存放场景文件,不包括插件的案例场景文件(第三方插件的案例文件可以先放在原位置)

除初始运行场景外,其他场景都要放在各自的分类文件夹中

 

Scripts 脚本目录

存放 C#、Shader 脚本,代码内容,注意 Unity3D 的 C# 代码规范同微软 .NET FRAMEWORK 规范相同详情可以参照文档。

子目录:

  • Commons:通用类
  • Tools:工具类
  • Shaders:自己写的 shader
  • 具体业务文件夹:根据架构创建业务文件夹

 

Standard Assets 标准资源目录

标准资源文件夹,存放 unity 提供的标准资源文件的文件夹。

 

StreamingAssets 流文件目录

用于存放一些流文件,比如音视频文件、二进制文件、assetbundle 文件。全局唯一,存放在根目录下。和 Resources 文件的区别就是 Resources 文件夹中的内容在打包时会被压缩和加密。而 StreamingAsset 文件夹中的内容则会原封不动的打入包中,因此 StreamingAssets 主要用来存放存放打包的 AB 资源,然后用户安装包之后把这些 AB 资源是放到手机内。特点:

  • 只读,可以放一些压缩的 AB 资源。
  • 只能用过 WWW 类(新版本都已采用 UnityWebRequest 来取代 WWW)来读取。

其他

本文仅提供一种目录结构思路,具体项目可根据需求调整目录结构和团队管理规范。