Skip to content

简介

资产是您在 SandMod 项目中可以快速引用的数据内容集合。资产可以代表项目中的视觉或音频元素,例如 3D 模型、纹理或音效。资产还可以表示更抽象的项目,用于任何用途的任意文本或数据。资产从项目外导入,也可以在编辑器中创建。

【Asset001.png】

项目窗口中各种资产的预览。

工作流程

【Asset002.png】

  1. 将资产导入 SandMod 编辑器。

  2. 在 SandMod 编辑器中创建资产。

  3. SandMod 编辑器中通过组件基于资产 ID 引用这些资产内容。

  4. 游戏发布时项目中所有资产都会同步上传到云端。

  5. 玩家体验游戏项目时,Blockman Go 平台会根据调用的资产 ID 分配游戏需要下载资产。

NOTE

Blockman Go 平台会自动根据项目需要分配对应资产,因此您不需要管理项目中用到的资产的构建和分发。

动态资产

对于需要占用大量储存空间的资产(如 2D 贴图资产、网格资产、音频资产),选中后可以在 检视窗口(Inspector)中设置是否定义为动态资产。

【Asset003_0.png】

定义为动态资产后,对应资产不会像其他资产一样在进入游戏时同步下载,而是在系统判断需要使用该资产时再通过 Blockman Go 云端下载对应资产到玩家设备中。

【Asset003_1.png】

  1. 动态资产。

  2. 非动态资产。

  3. 在 Blockman Go 平台进入游戏,非动态资产将会同步下载到玩家的移动客户端。

  4. 玩家在体验游戏时,遇到非动态资产将能立刻显示。

  5. 玩家在体验游戏时,遇到动态资产时,动态资产才开始从云端下载,并逐步显示资产的最终形态。

因此设置动态资产越多,玩家进入游戏的加载时间越短,但是动态资产逐步加载会对显示效果有一定影响。

CAUTION

在运行过程中使用的动态资产,不能将加载出来的资产信息保存在变量中,因为本帧结束之后,动态资源的内存将会被释放,导致变量保存值为空,造成不必要的错误。

支持资产

资产名称资产图标后缀名描述
音频资产(Audio Asset)Asset004.mp3 /.ogg / .wav仅允许编辑器外部创作并导入,具体使用方法请参阅 音频资产章节。
图集资产(Texture Atlas Asset)Asset005.atlas您可以在编辑器内部创建或通过其他 SandMod 创作的游戏项目中导入,具体使用方法请参阅 图集资产章节。
网格资产(Mesh Asset)Asset024.mesh您可以在其他 SandMod 创作的游戏项目中导入,或导入的模型带有网格的话系统将会自动生成,具体使用方法请参阅 网格资产章节。
骨骼资产(Skeleton Asset)Asset025.skeleton您可以在其他 SandMod 创作的游戏项目中导入,或导入的模型带有骨骼的话系统将会自动生成,具体使用方法请参阅 骨骼资产章节。
动画片段资产(Animation Clip Asset)Asset006.clip您可以在其他 SandMod 创作的游戏项目中导入,或导入的模型带有动作的话系统将会自动生成,具体使用方法请参阅 动画片段资产章节。
动画遮罩资产(Animation Mask Asset)Asset007.mask您可以在编辑器内部创建或通过其他 SandMod 创作的游戏项目中导入,具体使用方法请参阅 动画遮罩资产章节。
动画控制器资产(Animator Controller Asset)Asset008.animcontroller您可以在编辑器内部创建或通过其他SandMod创作的游戏项目中导入,具体使用方法请参阅 动画控制器资产章节。
行为树资产(Behavior Asset)Asset009.behavior您可以在编辑器内部创建或通过其他 SandMod 创作的游戏项目中导入,具体使用方法请参阅 行为树资产章节。
立方体贴图资产(Cubemap Asset)Asset010.cubemap您可以在编辑器内部创建或通过其他 SandMod 创作的游戏项目中导入,具体使用方法请参阅 立方体贴图资产章节。
材质资产(Material Asset)Asset011.mat您可以在编辑器内部创建或通过其他 SandMod 创作的游戏项目中导入,具体使用方法请参阅 材质资产章节。
物理材质资产(Physic Material Asset)Asset012.physicmat您可以在编辑器内部创建或通过其他 SandMod 创作的游戏项目中导入,具体使用方法请参阅 物理材质资产章节。
物理配置文件资产(Physics Setting Asset)Asset013.physics您可以在编辑器内部创建或通过其他 SandMod 创作的游戏项目中导入,具体使用方法请参阅 物理配置文件资产章节。
预制体资产(Prefab Asset)Asset014.prefab您可以在编辑器内部创建或通过其他 SandMod 创作的游戏项目中导入,具体使用方法请参阅 预制体资产章节。
脚本资产(Type Script Asset)Asset015.ts您可以在编辑器内部创建或通过外部导入。值得注意的是类名不能与原有的重复。具体使用方法请参阅 脚本资产章节。
2D 贴图资产(2D Texture Asset)Asset016.bmp/.jpg/.jpeg/.png/.tga仅允许编辑器外部创作并导入,具体使用方法请参阅 2D 贴图资产章节。
场景资产(Scene Asset)Asset017.scene您可以在编辑器内部创建或通过其他 SandMod 创作的游戏项目中导入,具体使用方法请参阅 场景资产章节。
Sprite(精灵)资产Asset018.sprite您可以在编辑器内部创建或通过其他 SandMod 创作的游戏项目中导入,具体使用方法请参阅 Sprite(精灵)资产章节。
精灵序列资产(Sprite Sequence Asset)Asset019.spriteclip您可以在编辑器内部创建或通过其他 SandMod 创作的游戏项目中导入,具体使用方法请参阅 精灵序列资产章节。
着色器资产(Shader Asset)Asset020.shader您可以在编辑器内部创建或通过外部导入。值得注意的是 name 命令定义的着色器命名不能与原有的重复。具体使用方法请参阅 着色器资产章节。
头文件(Shader Header)Asset021.h您可以在编辑器内部创建或通过外部导入。值得注意的是头文件命名不能与原有的重复。
UI 资产(UI Asset)Asset022.ui您可以在编辑器内部创建或通过其他 SandMod 创作的游戏项目中导入,具体使用方法请参阅 UI 资产章节。
字体资产(Font Asset)Asset023.ttf/.otc/.otf仅允许编辑器外部创作并导入,具体使用方法请参阅 字体资产章节。
文本资产(Text Asset)Asset013.txt/.json仅允许外部导入,是文本形式的资产,SandMod 支持查询文本资产中的文本内容,或在缓存中编辑文本内容(但无法改写资产)。
表格资产(CSV Asset)Asset013.csv仅允许外部导入,是表格形式的资产,SandMod 支持查询 CSV 格式表格内每个单元格的内容,或在缓存中编辑表格的内容(但无法改写资产)。

资产信息

当您在 项目窗口(Project)中选中资产,此时 检视窗口(Inspector)将会显示该资产的类型,以及其基础信息。

【Asset026.png】

名称描述
名称(Name)显示该资产的名称,您可以直接在此属性编辑框中重新定义资产名称。
文件大小(File Size)显示资产文件占用的储存空间大小。
文件路径(File Path)显示资产所在的文件路径,点击 Asset028快速跳转按钮,该资产将在 项目窗口(Project)中跳转显示并高亮标识。
部分资产除了基础信息外还会显示资产相关的其他信息,甚至有部分可以直接在 检视窗口(Inspector)中编辑的资产属性,具体内容可参阅各个资产的对应介绍章节。

脚本中获取资产

为了提升玩家的体验,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),将资产上传至资源商店,您可以将上传的资产分享给其他开发者,或者在您其他项目中使用。