# 资源工作流

游戏资源(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 新手引导欢迎页