关于 unity-importer
unity-importer 是用于检查和修改 Unity 现有贴图、音频和模型导入设置的技能模块。它支持批量设置、贴图平台覆盖,以及在 Unity 需要刷新资源时重新导入。
主要功能
- 01查看贴图、音频和模型设置
- 02单独或批量修改导入设置
- 03配置贴图平台覆盖选项
- 04调整 Sprite、音频、骨骼和动画设置
- 05设置变更后重新导入资源
适用场景
- 01设置项目资源的贴图压缩
- 02应用特定平台的贴图设置
- 03配置音频加载与压缩
- 04调整模型骨骼或动画导入
MCP 相关
它向 MCP 客户端提供 Unity 资源导入器技能,用于查询和修改贴图、音频及模型设置,并执行重新导入。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ besty0728/ unity-skills --skill unity-importer安装后在 Claude Code 中输入/unity-importer确认已加载。
附带文件IMPORT_REFERENCE.md
详细介绍
调用此模块中的任何技能前: 如果你正准备根据技能名称或描述猜测参数来调用技能,请先停下——阅读此文件(或通过
GET /skills/recommend?includeSchema=true获取其架构)。如果你已经从 recommend/schema 获得参数定义,可以直接进行 dryRun。
触发条件
- 调整资源的导入方式
- 设置贴图压缩或 Sprite 模式
- 应用分平台覆盖
- 调整资源导入方式、设置贴图压缩或 Sprite 模式、应用分平台覆盖
Unity 导入器技能
使用此模块更改项目中已有纹理、音频和模型的导入设置。
优先批量处理:配置同一类别的
2+个资源时,优先使用批量设置器。
防护措施
运行模式(v1.9 三层模式):
- Approval(默认):查询/获取器技能(
texture_get_settings、texture_get_info、texture_find_assets、texture_find_by_size、texture_get_platform_settings、texture_get_import_settings、audio_get_settings、audio_get_clip_info、audio_find_clips、audio_find_sources_in_scene、audio_get_source_info、audio_get_import_settings、model_get_settings、model_find_assets、model_get_mesh_info、model_get_materials_info、model_get_animations_info、model_get_rig_info、model_get_import_settings、asset_get_labels)可直接运行。设置器/重新导入属于 FullAuto——在MODE_RESTRICTED下运行时,请执行授权流程。 - Auto / Bypass:SemiAuto 和 FullAuto 可直接运行。
- 此模块不包含 Delete / PlayMode / Reload /
RiskLevel="high"技能——不会有技能被自动归类为禁止项。在 Approval 模式下,可通过授权进行导入器修改。 - 设置更改未必会立即应用到内存中;Unity 需要完整刷新资源时,请调用
asset_reimport/asset_reimport_batch。
不要(常见幻觉):
- 不存在
importer_import-> 使用asset模块中的asset_import将文件导入项目 - 不存在
importer_set_format-> 使用特定的纹理/音频/模型设置器 - 不存在
importer_get_settings-> 使用类别专属的获取器 - 设置更改未必会立即应用到内存中,可能仍需重新导入
路由:
- 文件导入或刷新 ->
asset - 纹理设置 ->
texture_* - 音频设置 ->
audio_* - 模型设置 ->
model_* - 替代导入器桥接技能 ->
texture_set_import_settings、audio_set_import_settings、model_set_import_settings - 强制刷新导入器 ->
asset_reimport或asset_reimport_batch
技能
纹理路线
导入设置:
| 技能 | 用途 | 关键参数 |
|---|---|---|
texture_get_settings | 读取纹理导入器设置 | assetPath |
texture_set_settings | 设置纹理导入器设置 | assetPath、textureType?、maxSize?、filterMode?、compression?、mipmapEnabled?、sRGB?、readable?、wrapMode? |
texture_set_settings_batch | 批量设置纹理 | items |
texture_get_import_settings | 读取精简版导入器设置(type/maxSize/compression/filter/srgb/readable/mipmap) | assetPath |
texture_set_import_settings | 备用纹理导入桥接工具 | 类似的纹理字段 |
compression取值。 请传入TextureImporterCompression的 CLR 成员名称——Uncompressed、Compressed、CompressedHQ、CompressedLQ;getter 返回的也是这些值。Inspector 中的用词也可作为别名:None→Uncompressed,Normal和NormalQuality→Compressed,LowQuality→CompressedLQ,HighQuality→CompressedHQ;会先去除空格,因此"Low Quality"和"High Quality"也有效。texture_set_settings和texture_set_import_settings共用这套取值——它们过去的取值规则不一致,现在在其中一个工具上有效的值,在另一个工具上也有效。各平台的compressionQuality是独立的0-100整数,与此枚举无关。完整字段列表 → IMPORT_REFERENCE.md。
查询和运行时信息:
| 技能 | 用途 | 关键参数 |
|---|---|---|
texture_find_assets | 按 AssetDatabase 筛选条件搜索 Texture2D 资源 | filter?、limit?(默认值为 50) |
texture_get_info | 查看尺寸、格式和运行时内存大小 | assetPath |
texture_find_by_size | 查找指定尺寸范围内的纹理(像素) | minSize?(0)、maxSize?(99999)、limit?(50) |
类型化设置/平台覆盖:
| 技能 | 用途 | 关键参数 |
|---|---|---|
texture_set_type | 切换纹理类型 | assetPath、textureType(Default/NormalMap/GUI/Sprite/Cursor/Cookie/Lightmap/SingleChannel/Shadowmask/DirectionalLightmap;EditorGUI 是 GUI 的别名,Inspector 标签如 "Normal Map" 可直接使用) |
texture_set_platform_settings | 覆盖各平台设置 | assetPath、platform(Standalone/iPhone/Android/WebGL)、maxSize?、format?(可接受的值取决于编辑器版本——遇到拒绝时,请从 validValues 中获取)、compressionQuality?、overridden? |
texture_get_platform_settings | 读取平台覆盖设置 | assetPath、platform |
texture_set_sprite_settings | 精灵专用参数(PPU、模式) | assetPath、pixelsPerUnit?、spriteMode?(None/Single/Multiple/Polygon) |
sprite_set_import_settings | 精灵导入器桥接工具(PPU、packingTag、pivot) | assetPath、spriteMode?(相同的四个值)、pixelsPerUnit?、packingTag?、pivotX?、pivotY? |
spriteMode使用标准的SpriteImportMode取值——包括None在内的全部四个成员。 两种技能在相关处理上有所不同:sprite_set_import_settings会在Single/Multiple/Polygon时将textureType强制设为Sprite,而在None时有意保留纹理类型不变(类型为 Sprite 但没有精灵的纹理无法使用),并回显最终的textureType。texture_set_sprite_settings只写入模式和每单位像素数。
常见纹理设置:
- UI 精灵 →
textureType="Sprite",通常设置mipmapEnabled=false - 像素风图像 →
filterMode="Point" - 运行时 CPU 读取 → 仅在必要时设置
readable=true - 针对平台调优的构建 → 优先使用
texture_set_platform_settings,而非全局的texture_set_settings
音频路由
导入设置:
| 技能 | 用途 | 关键参数 |
|---|---|---|
audio_get_settings | 读取音频导入器设置 | assetPath |
audio_set_settings | 设置音频导入器设置 | assetPath、forceToMono?、loadInBackground?、loadType?、compressionFormat?、quality? |
audio_set_settings_batch | 批量设置音频 | items |
audio_get_import_settings | 读取最简导入器默认设置(loadType/format/quality/forceToMono/loadInBackground) | assetPath |
audio_set_import_settings | 另一种音频导入桥接方式 | 类似的音频字段 |
片段查询与信息:
| 技能 | 用途 | 关键参数 |
|---|---|---|
audio_find_clips | 按筛选条件搜索 AudioClip 资源 | filter?、limit?(默认值为 50) |
audio_get_clip_info | 检查片段的时长/声道数/频率/采样数 | assetPath |
场景运行时(AudioSource / AudioMixer):
| 技能 | 用途 | 关键参数 |
|---|---|---|
audio_add_source | 向 GameObject 添加 AudioSource | 目标(name/instanceId/path)、clipPath?、playOnAwake?(false)、loop?(false)、volume?(1) |
audio_get_source_info | 读取 AudioSource 配置 | 目标 |
audio_set_source_properties | 更新 AudioSource 字段 | 目标、clipPath?、volume?、pitch?、loop?、playOnAwake?、mute?、spatialBlend?、priority? |
audio_find_sources_in_scene | 列出活动场景中的所有 AudioSource | limit?(默认值为 50) |
audio_create_mixer | 创建新的 AudioMixer 资源 | mixerName?(默认值为 NewAudioMixer)、folder?(默认值为 Assets) |
常见音频决策:
- 长篇背景音乐 →
loadType="Streaming" - 短音效 →
loadType="DecompressOnLoad" - 对内存敏感的音效库 → 考虑设置
forceToMono=true - 在场景侧调整 AudioSource → 优先使用
audio_set_source_properties,而非手动编辑组件
模型路由
导入设置:
| 技能 | 用途 | 关键参数 |
|---|---|---|
model_get_settings | 读取模型导入器设置 | assetPath |
model_set_settings | 设置模型导入器设置 | assetPath、globalScale?、meshCompression?、isReadable?、generateSecondaryUV?、animationType?、importAnimation?、importCameras?、importLights?、materialImportMode? |
model_set_settings_batch | 批量设置模型 | items |
model_get_import_settings | 读取最简导入器默认设置(scale/compression/animationType/importAnimation/materialImportMode) | assetPath |
model_set_import_settings | 备用模型导入桥接 | 类似的模型字段 |
查询和信息:
| 技能 | 用途 | 关键参数 |
|---|---|---|
model_find_assets | 按筛选条件搜索模型资源 | filter?、limit?(默认值为 50) |
model_get_mesh_info | 网格顶点/三角形/子网格统计信息 | 目标(name/instanceId/path)或 assetPath |
model_get_materials_info | 检查模型中嵌入的子资源材质 | assetPath |
model_get_animations_info | 列出模型上的动画剪辑和帧率 | assetPath |
model_get_rig_info | 读取 animationType、Avatar 和骨架绑定信息 | assetPath |
动画和骨架:
| 技能 | 用途 | 关键参数 |
|---|---|---|
model_set_animation_clips | 配置动画剪辑拆分 | assetPath、clips({name, firstFrame, lastFrame, loop} 的 JSON 数组) |
model_set_rig | 切换骨架/骨骼模式 | assetPath、animationType(None/Legacy/Generic/Human)、avatarSetup? |
animationType骨架模式:CLR 枚举成员为Human——Humanoid是 Inspector 中显示的标签,也可作为别名接受,因此两种写法均有效。model_get_rig_info会返回 CLR 名称(Human),并同时返回isHuman。
常见模型处理方式:
- 角色 -> 需要重定向动画时,设置
animationType="Human"(或使用Humanoid别名) - 静态道具 -> 未使用时,禁用摄像机/灯光/动画导入
- 烘焙光照网格 -> 适当启用次级 UV
- 调用
model_set_rig或model_set_animation_clips后 -> 调用asset_reimport刷新剪辑和 Avatar
重新导入规则
更改导入器设置后,如需让 Unity 完全刷新资源,请使用重新导入:
| 技能 | 用途 |
|---|---|
asset_reimport | 重新导入一个资源 |
asset_reimport_batch | 重新导入符合搜索范围的资源 |
最简示例
import unity_skills
unity_skills.call_skill("texture_set_settings_batch", items=[
{"assetPath": "Assets/UI/icon_play.png", "textureType": "Sprite", "mipmapEnabled": False},
{"assetPath": "Assets/UI/icon_pause.png", "textureType": "Sprite", "mipmapEnabled": False}
])
unity_skills.call_skill("audio_set_settings",
assetPath="Assets/Audio/bgm.mp3",
loadType="Streaming",
compressionFormat="Vorbis",
quality=0.7
)
unity_skills.call_skill("asset_reimport", assetPath="Assets/Audio/bgm.mp3")
精确签名
精确的名称、参数、默认值和返回值由 GET /skills/schema 或 unity_skills.get_skill_schema() 定义,而非本文件。
加载 IMPORT_REFERENCE.md,了解扩展资源搜索/查询辅助功能、平台覆盖设置、骨架/动画详情以及导入器端的最佳实践。