mcpField
U
unity-importer

unity-importer

github.com/besty0728开发1.9k83 次安装今天更新
代码仓库

关于 unity-importer

unity-importer 是用于检查和修改 Unity 现有贴图、音频和模型导入设置的技能模块。它支持批量设置、贴图平台覆盖,以及在 Unity 需要刷新资源时重新导入。

主要功能

  1. 01查看贴图、音频和模型设置
  2. 02单独或批量修改导入设置
  3. 03配置贴图平台覆盖选项
  4. 04调整 Sprite、音频、骨骼和动画设置
  5. 05设置变更后重新导入资源

适用场景

  1. 01设置项目资源的贴图压缩
  2. 02应用特定平台的贴图设置
  3. 03配置音频加载与压缩
  4. 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列出活动场景中的所有 AudioSourcelimit?(默认值为 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,了解扩展资源搜索/查询辅助功能、平台覆盖设置、骨架/动画详情以及导入器端的最佳实践。

评论

支持 Markdown