简介
资产是您在 SandMod 项目中可以快速引用的数据内容集合。资产可以代表项目中的视觉或音频元素,例如 3D 模型、纹理或音效。资产还可以表示更抽象的项目,用于任何用途的任意文本或数据。资产从项目外导入,也可以在编辑器中创建。
【Asset001.png】
项目窗口中各种资产的预览。
工作流程
【Asset002.png】
将资产导入 SandMod 编辑器。
在 SandMod 编辑器中创建资产。
SandMod 编辑器中通过组件基于资产 ID 引用这些资产内容。
游戏发布时项目中所有资产都会同步上传到云端。
玩家体验游戏项目时,Blockman Go 平台会根据调用的资产 ID 分配游戏需要下载资产。
NOTE
Blockman Go 平台会自动根据项目需要分配对应资产,因此您不需要管理项目中用到的资产的构建和分发。
动态资产
对于需要占用大量储存空间的资产(如 2D 贴图资产、网格资产、音频资产),选中后可以在 检视窗口(Inspector)中设置是否定义为动态资产。
【Asset003_0.png】
定义为动态资产后,对应资产不会像其他资产一样在进入游戏时同步下载,而是在系统判断需要使用该资产时再通过 Blockman Go 云端下载对应资产到玩家设备中。
【Asset003_1.png】
动态资产。
非动态资产。
在 Blockman Go 平台进入游戏,非动态资产将会同步下载到玩家的移动客户端。
玩家在体验游戏时,遇到非动态资产将能立刻显示。
玩家在体验游戏时,遇到动态资产时,动态资产才开始从云端下载,并逐步显示资产的最终形态。
因此设置动态资产越多,玩家进入游戏的加载时间越短,但是动态资产逐步加载会对显示效果有一定影响。
CAUTION
在运行过程中使用的动态资产,不能将加载出来的资产信息保存在变量中,因为本帧结束之后,动态资源的内存将会被释放,导致变量保存值为空,造成不必要的错误。
支持资产
| 资产名称 | 资产图标 | 后缀名 | 描述 |
| 音频资产(Audio Asset) | .mp3 /.ogg / .wav | 仅允许编辑器外部创作并导入,具体使用方法请参阅 音频资产章节。 | |
| 图集资产(Texture Atlas Asset) | .atlas | 您可以在编辑器内部创建或通过其他 SandMod 创作的游戏项目中导入,具体使用方法请参阅 图集资产章节。 | |
| 网格资产(Mesh Asset) | .mesh | 您可以在其他 SandMod 创作的游戏项目中导入,或导入的模型带有网格的话系统将会自动生成,具体使用方法请参阅 网格资产章节。 | |
| 骨骼资产(Skeleton Asset) | .skeleton | 您可以在其他 SandMod 创作的游戏项目中导入,或导入的模型带有骨骼的话系统将会自动生成,具体使用方法请参阅 骨骼资产章节。 | |
| 动画片段资产(Animation Clip Asset) | .clip | 您可以在其他 SandMod 创作的游戏项目中导入,或导入的模型带有动作的话系统将会自动生成,具体使用方法请参阅 动画片段资产章节。 | |
| 动画遮罩资产(Animation Mask Asset) | .mask | 您可以在编辑器内部创建或通过其他 SandMod 创作的游戏项目中导入,具体使用方法请参阅 动画遮罩资产章节。 | |
| 动画控制器资产(Animator Controller Asset) | .animcontroller | 您可以在编辑器内部创建或通过其他SandMod创作的游戏项目中导入,具体使用方法请参阅 动画控制器资产章节。 | |
| 行为树资产(Behavior Asset) | .behavior | 您可以在编辑器内部创建或通过其他 SandMod 创作的游戏项目中导入,具体使用方法请参阅 行为树资产章节。 | |
| 立方体贴图资产(Cubemap Asset) | .cubemap | 您可以在编辑器内部创建或通过其他 SandMod 创作的游戏项目中导入,具体使用方法请参阅 立方体贴图资产章节。 | |
| 材质资产(Material Asset) | .mat | 您可以在编辑器内部创建或通过其他 SandMod 创作的游戏项目中导入,具体使用方法请参阅 材质资产章节。 | |
| 物理材质资产(Physic Material Asset) | .physicmat | 您可以在编辑器内部创建或通过其他 SandMod 创作的游戏项目中导入,具体使用方法请参阅 物理材质资产章节。 | |
| 物理配置文件资产(Physics Setting Asset) | .physics | 您可以在编辑器内部创建或通过其他 SandMod 创作的游戏项目中导入,具体使用方法请参阅 物理配置文件资产章节。 | |
| 预制体资产(Prefab Asset) | .prefab | 您可以在编辑器内部创建或通过其他 SandMod 创作的游戏项目中导入,具体使用方法请参阅 预制体资产章节。 | |
| 脚本资产(Type Script Asset) | .ts | 您可以在编辑器内部创建或通过外部导入。值得注意的是类名不能与原有的重复。具体使用方法请参阅 脚本资产章节。 | |
| 2D 贴图资产(2D Texture Asset) | .bmp/.jpg/.jpeg/.png/.tga | 仅允许编辑器外部创作并导入,具体使用方法请参阅 2D 贴图资产章节。 | |
| 场景资产(Scene Asset) | .scene | 您可以在编辑器内部创建或通过其他 SandMod 创作的游戏项目中导入,具体使用方法请参阅 场景资产章节。 | |
| Sprite(精灵)资产 | .sprite | 您可以在编辑器内部创建或通过其他 SandMod 创作的游戏项目中导入,具体使用方法请参阅 Sprite(精灵)资产章节。 | |
| 精灵序列资产(Sprite Sequence Asset) | .spriteclip | 您可以在编辑器内部创建或通过其他 SandMod 创作的游戏项目中导入,具体使用方法请参阅 精灵序列资产章节。 | |
| 着色器资产(Shader Asset) | ![]() | .shader | 您可以在编辑器内部创建或通过外部导入。值得注意的是 name 命令定义的着色器命名不能与原有的重复。具体使用方法请参阅 着色器资产章节。 |
| 头文件(Shader Header) | ![]() | .h | 您可以在编辑器内部创建或通过外部导入。值得注意的是头文件命名不能与原有的重复。 |
| UI 资产(UI Asset) | .ui | 您可以在编辑器内部创建或通过其他 SandMod 创作的游戏项目中导入,具体使用方法请参阅 UI 资产章节。 | |
| 字体资产(Font Asset) | .ttf/.otc/.otf | 仅允许编辑器外部创作并导入,具体使用方法请参阅 字体资产章节。 | |
| 文本资产(Text Asset) | .txt/.json | 仅允许外部导入,是文本形式的资产,SandMod 支持查询文本资产中的文本内容,或在缓存中编辑文本内容(但无法改写资产)。 | |
| 表格资产(CSV Asset) | .csv | 仅允许外部导入,是表格形式的资产,SandMod 支持查询 CSV 格式表格内每个单元格的内容,或在缓存中编辑表格的内容(但无法改写资产)。 |
资产信息
当您在 项目窗口(Project)中选中资产,此时 检视窗口(Inspector)将会显示该资产的类型,以及其基础信息。
【Asset026.png】
| 名称 | 描述 |
| 名称(Name) | 显示该资产的名称,您可以直接在此属性编辑框中重新定义资产名称。 |
| 文件大小(File Size) | 显示资产文件占用的储存空间大小。 |
| 文件路径(File Path) | 显示资产所在的文件路径,点击 |
脚本中获取资产
为了提升玩家的体验,SandMod 在游戏项目发布时会对游戏进行加密处理,因此 SandMod 在脚本中调用资产是通过唯一资源 ID,而不是资产的路径。
唯一资源 ID
每个资源都有唯一的资源 ID,您可以通过以下方法获取资源 ID:
【Asset027.png】
在 项目窗口(Project)中右键对应资产打开上下文菜单。
点击 复制资源 ID(Copy Asset ID) 的选项。
此时该资产对应的资源 ID 将会复制在剪贴板中。
通过资源 ID 获取资产
您可以通过 Resources.Load 或者 Resources.LoadAsync 获取对应资产,具体的使用方法请参阅 API 文档关于 Resource 的相关内容。
其他功能
👉 导入资产(Import Asset),从编辑器外部导入资产的规则和方法。
👉 上传资产(Upload Asset),将资产上传至资源商店,您可以将上传的资产分享给其他开发者,或者在您其他项目中使用。


