# 资源工作流
游戏资源(asset)是指一系列游戏项目中的静态文件,比如模型,材质,图片,音频,二进制之类的统称。也包括了小游戏定义的一些资源,比如游戏场景,RenderTexture,物理材质,动画状态机等。也可以用来表达工具需要的一些数据,比如布局信息,新手引导数据等。最后也包括了用户的脚本,脚本是一种非常特殊的资源。
整个资源流程包括了: 导入,创建,构建,上传,下载,使用
- 导入,支持将美术资源导入到小游戏内容,包括了3D模型,图片,音频等。
- 创建,基于刚刚导入的内容,开发游戏的过程。
- 构建,会将游戏需要用的内容变成适合发布给用户的状态。
- 上传,将构建结果上传到微信进行审核与发布,也可以将部分游戏内容放到云端。
- 下载,游戏内容将会被小游戏包下载到玩家手机上,或是通过云CDN。
- 使用,小游戏框架加载下载好的资源生成游戏实例。
游戏运行时,这些文件会依照下载 → 读取 → 反序列化 → 目标资源的步骤,从外部加载进游戏里。
加载进内存的资源,如果在最近20秒内没有被任何地方引用,就会将其从内存中释放掉,下次加载的时候再从本地存储空间中读取。

# 新手引导案例
开发者可以下载小游戏版工具并打开,然后点击资源工作流新手引导下载链接,下载体验完整流程。
# 常见资源类型
小游戏自身定义了多种资源类型:
| 类型 | 说明 |
|---|---|
| Scene | 场景 |
| Prefab | 预制体 |
| Texture2D | 2d 纹理 |
| Atlaspac | 小游戏内置图集描述器 |
| Atlas | 小游戏内置图集资源 |
| Tplist | texture Packer图集 |
| TextureCube | 立方体纹理 |
| RenderTexture | 可渲染纹理 |
| SpriteFrame | 精灵帧 |
| Mesh | 网格 |
| Material | 材质 |
| Physicmaterial | 物理材质 |
| Effect | 特效 |
| Font | 字体 |
| BitmapFont | 位图字体 |
| AnimationClip | 动画片段 |
| AnimatorController | 动画状态机 |
| Avatar | 骨骼 |
| Avatarmask | 骨骼蒙皮 |
| Variant | shader 代码的变体。包含 vertex 代码和 fragment 代码,在渲染用到该 shader 时,shader 代码会被编译成 shader 对象并参与渲染。用户不在asset目录下理解。 |
| AudioClip | 音频资源 |
| AudioMixer | 混音资源 |
| Playable | TimeLine用资源 |
| Scriptableasset | 自定义资源 |
| Raw | 纯文件。不被资源系统理解,而是游戏自定义的资源。比如游戏关卡的配置表等。 |
| Script | .js 文件。加载时会通过 require() 方法被执行。 |
| Layout | 工具布局资源 |
| UiKit | UI控件资源 |
| Tut | 新手引导主流程 |
| Tutsect | 新手引导子流程 |
| Tutpage | 新手引导单页 |
| Tutwlcm | 新手引导欢迎页 |