在 Manus 中运行任何 Skill
一键导入
一键导入
一键在 Manus 中运行任何 Skill
开始使用assets
星标35
分支10
更新时间2026年5月30日 05:34
资产管理系统,负责加载和管理游戏资源。
安装
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
文件资源管理器
4 个文件SKILL.md
readonly菜单
资产管理系统,负责加载和管理游戏资源。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Boo引擎的主命名空间,提供对各个核心模块的访问。所有引擎功能都通过Boo命名空间统一访问。
事件系统,处理引擎和游戏事件的监听与触发。
Boo引擎的核心游戏实例,负责游戏的初始化、更新、渲染和场景管理。作为引擎对外的核心全局实例,提供游戏引擎的全自动运行和用户控制接口。
输入系统,处理鼠标和触控板输入事件。
Boo引擎的场景系统,负责管理游戏中的所有节点和组件,提供层次化的结构来组织游戏对象,支持2D和3D场景的管理。
| name | assets |
| description | 资产管理系统,负责加载和管理游戏资源。 |
资产管理系统负责加载和管理游戏资源,包括纹理、材质、网格等。通过 Boo::assetManager 全局实例访问。
loadAsset 按路径或 UUID 自动识别类型并加载getAsset 获取已加载的资源,可选自动加载unloadAsset 卸载指定资源// 加载资产(按路径或 UUID,自动识别类型)
Asset* loadAsset(const std::string& uuid);
// 获取已加载的资产,loadIfNotFound=true 时未找到会自动加载
Asset* getAsset(const std::string& uuid, bool loadIfNotFound = false);
// 卸载资产
void unloadAsset(const std::string& uuid);
// 设置/获取资产根目录
void setAssetsRoot(const std::string& assetsRoot);
const std::string& getAssetsRoot();
// 创建静态纹理(GPU 上传后释放 CPU 数据)
void create(int width, int height, int channels,
std::vector<uint8_t> pixelsVector, GfxTextureFormat format);
// 创建动态纹理(保留 CPU 数据,支持运行时修改)
void createDynamic(int width, int height, int channels,
std::vector<uint8_t> pixelsVector, GfxTextureFormat format);
// 从文件内存数据创建纹理
void create(const unsigned char* data, size_t size);
// 属性获取
int getWidth();
int getHeight();
int channels();
GfxTexture* getGfxTexture();
// 从 JSON 数据创建材质
void create(const json& materialData);
// 从已有材质复制创建
void create(MaterialAsset* mtl);
// 设置纹理
void setTexture(TextureAsset* texture);
void setTexture(const std::string& key, TextureAsset* texture);
// 设置 UI 颜色
void setUIColor(float r, float g, float b, float w);
GfxMaterial* getGfxMaterial();
// 创建静态网格
void create(std::vector<FMeshPrimitive> primitives);
// 创建动态网格(支持运行时更新)
void createDynamic(std::vector<FMeshPrimitive> primitives);
// 更新动态网格子网格
void updateDynamicSubMesh(int index, FMeshPrimitive& data);
size_t getSubMeshCount();
GfxMesh* getGfxMesh(int index);
| 常量 | 描述 |
|---|---|
Boo::AssetBuiltinTexture::Default | 默认白色纹理 |
Boo::AssetBuiltinMaterial::UI | 内置 UI 材质 |
| 值 | 描述 |
|---|---|
None | 无 |
Texture | 纹理 |
Audio | 音频 |
Font | 字体 |
Shader | 着色器 |
Material | 材质 |
Scene | 场景 |
GLTF | GLTF 模型 |
Mesh | 网格 |
| 值 | 描述 |
|---|---|
Static | 静态纹理,GPU 上传后释放 CPU 数据 |
Dynamic | 动态纹理,保留 CPU 数据支持运行时修改 |
#include "engine/boo.h"
void loadResources() {
// 从文件加载纹理
Boo::TextureAsset* tex = static_cast<Boo::TextureAsset*>(
Boo::assetManager->loadAsset("assets/textures/player.png")
);
// 设置到 UISprite
Boo::UISprite* sprite = dynamic_cast<Boo::UISprite*>(node->addComponent("UISprite"));
if (sprite && tex) {
sprite->setTexture(tex);
}
}
Boo::MaterialAsset* mat = static_cast<Boo::MaterialAsset*>(
Boo::assetManager->loadAsset("assets/materials/ui.mat")
);
// 设置纹理到材质
Boo::TextureAsset* tex = static_cast<Boo::TextureAsset*>(
Boo::assetManager->getAsset("assets/textures/player.png", true)
);
mat->setTexture(tex);
// 使用默认白色纹理(无需加载,直接使用)
sprite->setTexture(Boo::AssetBuiltinTexture::Default);
// 使用内置 UI 材质
sprite->setMaterial(Boo::AssetBuiltinMaterial::UI);
setAssetsRoot 设置根目录后路径会自动拼接getAsset 获取已缓存资源unloadAsset 释放内存资产管理系统通过 loadAsset/getAsset/unloadAsset 统一管理所有资产。内置常量 AssetBuiltinTexture::Default 和 AssetBuiltinMaterial::UI 可直接使用,无需加载。