← Back to skills
extension
Category: Development & EngineeringAPI key requirement unconfirmed

unity-importer

Asset import settings. Use when users want to configure texture, audio, or model import settings. Triggers: import settings, texture settings, audio settings, model settings, compression, max size, 导入设置, 纹理设置, Unity压缩.

personAuthor: jakexiaohubgithub

Before calling any skill in this module: if you are about to call a skill with parameters guessed from its name or description, STOP — read this file (or fetch its schema via GET /skills/recommend?includeSchema=true) first. If you already have the parameter definitions from recommend/schema, you may proceed straight to dryRun.

Triggers

  • Adjusting how assets import
  • Setting texture compression or sprite modes
  • Applying per-platform overrides
  • 调整资源导入方式、设置贴图压缩或 Sprite 模式、应用分平台覆盖

Unity Importer Skills

Use this module to change import settings for textures, audio, and models that already exist in the project.

Batch-first: Prefer the batch setters when configuring 2+ assets of the same category.

Guardrails

Operating Mode (v1.9 three-tier):

  • Approval (default): query/getter skills (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) run directly. Setters / reimport are FullAuto — on MODE_RESTRICTED, run the grant protocol.
  • Auto / Bypass: SemiAuto and FullAuto run directly.
  • This module contains no Delete / PlayMode / Reload / RiskLevel="high" skills — nothing auto-classifies as forbidden. Importer mutations are reachable via grant in Approval mode.
  • Setting changes do not always apply in memory immediately; call asset_reimport / asset_reimport_batch when Unity needs to fully refresh the asset.

DO NOT (common hallucinations):

  • importer_import does not exist -> use asset_import in the asset module to bring files into the project
  • importer_set_format does not exist -> use the specific texture/audio/model setters
  • importer_get_settings does not exist -> use the category-specific getters
  • Settings changes do not always apply instantly in memory. Reimport may still be required

Routing:

  • File import or refresh -> asset
  • Texture settings -> texture_*
  • Audio settings -> audio_*
  • Model settings -> model_*
  • Alternative importer bridge skills -> texture_set_import_settings, audio_set_import_settings, model_set_import_settings
  • Force importer refresh -> asset_reimport or asset_reimport_batch

Skills

Texture Route

Import settings:

| Skill | Use | Key parameters | |-------|-----|----------------| | texture_get_settings | Read texture importer settings | assetPath | | texture_set_settings | Set texture importer settings | assetPath, textureType?, maxSize?, filterMode?, compression?, mipmapEnabled?, sRGB?, readable?, wrapMode? | | texture_set_settings_batch | Batch texture settings | items | | texture_get_import_settings | Read minimal importer settings (type/maxSize/compression/filter/srgb/readable/mipmap) | assetPath | | texture_set_import_settings | Alternative texture import bridge | similar texture fields |

compression vocabulary. Pass the CLR member names of TextureImporterCompression — Uncompressed, Compressed, CompressedHQ, CompressedLQ — which are also what the getters echo back. The Inspector's wording is accepted as aliases: None → Uncompressed, Normal and NormalQuality → Compressed, LowQuality → CompressedLQ, HighQuality → CompressedHQ; spaces are stripped first, so "Low Quality" and "High Quality" also work. texture_set_settings and texture_set_import_settings share this one vocabulary — they used to disagree, so a value that works on one now works on the other. Per-platform compressionQuality is a separate 0-100 integer, not this enum. Full field list → IMPORT_REFERENCE.md.

Query and runtime info:

| Skill | Use | Key parameters | |-------|-----|----------------| | texture_find_assets | Search Texture2D assets by AssetDatabase filter | filter?, limit? (default 50) | | texture_get_info | Inspect dimensions, format, and runtime memory size | assetPath | | texture_find_by_size | Find textures in a dimension range (pixels) | minSize? (0), maxSize? (99999), limit? (50) |

Typed / platform overrides:

| Skill | Use | Key parameters | |-------|-----|----------------| | texture_set_type | Switch texture type | assetPath, textureType (Default/NormalMap/GUI/Sprite/Cursor/Cookie/Lightmap/SingleChannel/Shadowmask/DirectionalLightmap; EditorGUI aliases GUI, and Inspector labels like "Normal Map" work as-is) | | texture_set_platform_settings | Override per-platform settings | assetPath, platform (Standalone/iPhone/Android/WebGL), maxSize?, format? (accepted set is editor-version dependent — take it from validValues on a rejection), compressionQuality?, overridden? | | texture_get_platform_settings | Read per-platform override | assetPath, platform | | texture_set_sprite_settings | Sprite-specific knobs (PPU, mode) | assetPath, pixelsPerUnit?, spriteMode? (None/Single/Multiple/Polygon) | | sprite_set_import_settings | Sprite importer bridge (PPU, packingTag, pivot) | assetPath, spriteMode? (same four values), pixelsPerUnit?, packingTag?, pivotX?, pivotY? |

spriteMode is the plain SpriteImportMode vocabulary — all four members, None included. The two skills differ in what they do around it: sprite_set_import_settings forces textureType to Sprite for Single/Multiple/Polygon and deliberately leaves the texture type alone for None (a Sprite-typed texture with no sprite is unusable), and it echoes the resulting textureType back. texture_set_sprite_settings only writes the mode and pixels-per-unit.

Common texture decisions:

  • UI sprites -> textureType="Sprite", usually mipmapEnabled=false
  • Pixel art -> filterMode="Point"
  • Runtime CPU reads -> readable=true only when necessary
  • Platform-tuned builds -> prefer texture_set_platform_settings over global texture_set_settings

Audio Route

Import settings:

| Skill | Use | Key parameters | |-------|-----|----------------| | audio_get_settings | Read audio importer settings | assetPath | | audio_set_settings | Set audio importer settings | assetPath, forceToMono?, loadInBackground?, loadType?, compressionFormat?, quality? | | audio_set_settings_batch | Batch audio settings | items | | audio_get_import_settings | Read minimal importer defaults (loadType/format/quality/forceToMono/loadInBackground) | assetPath | | audio_set_import_settings | Alternative audio import bridge | similar audio fields |

Clip query and info:

| Skill | Use | Key parameters | |-------|-----|----------------| | audio_find_clips | Search AudioClip assets by filter | filter?, limit? (default 50) | | audio_get_clip_info | Inspect length/channels/frequency/samples of a clip | assetPath |

Scene runtime (AudioSource / AudioMixer):

| Skill | Use | Key parameters | |-------|-----|----------------| | audio_add_source | Add an AudioSource to a GameObject | target (name/instanceId/path), clipPath?, playOnAwake? (false), loop? (false), volume? (1) | | audio_get_source_info | Read the AudioSource configuration | target | | audio_set_source_properties | Update AudioSource fields | target, clipPath?, volume?, pitch?, loop?, playOnAwake?, mute?, spatialBlend?, priority? | | audio_find_sources_in_scene | List all AudioSources in the active scene | limit? (default 50) | | audio_create_mixer | Create a new AudioMixer asset | mixerName? (default NewAudioMixer), folder? (default Assets) |

Common audio decisions:

  • Long BGM -> loadType="Streaming"
  • Short SFX -> loadType="DecompressOnLoad"
  • Memory-sensitive SFX libraries -> consider forceToMono=true
  • Scene-side AudioSource tuning -> prefer audio_set_source_properties over manual component edits

Model Route

Import settings:

| Skill | Use | Key parameters | |-------|-----|----------------| | model_get_settings | Read model importer settings | assetPath | | model_set_settings | Set model importer settings | assetPath, globalScale?, meshCompression?, isReadable?, generateSecondaryUV?, animationType?, importAnimation?, importCameras?, importLights?, materialImportMode? | | model_set_settings_batch | Batch model settings | items | | model_get_import_settings | Read minimal importer defaults (scale/compression/animationType/importAnimation/materialImportMode) | assetPath | | model_set_import_settings | Alternative model import bridge | similar model fields |

Query and info:

| Skill | Use | Key parameters | |-------|-----|----------------| | model_find_assets | Search model assets by filter | filter?, limit? (default 50) | | model_get_mesh_info | Mesh vertex / triangle / submesh stats | target (name/instanceId/path) or assetPath | | model_get_materials_info | Inspect sub-asset materials embedded in the model | assetPath | | model_get_animations_info | List animation clips and framerates on the model | assetPath | | model_get_rig_info | Read animationType, avatar, skeleton binding info | assetPath |

Animation and rig:

| Skill | Use | Key parameters | |-------|-----|----------------| | model_set_animation_clips | Configure animation clip splits | assetPath, clips (JSON array of {name, firstFrame, lastFrame, loop}) | | model_set_rig | Switch rig/skeleton mode | assetPath, animationType (None/Legacy/Generic/Human), avatarSetup? |

animationType rig mode: the CLR enum member is Human — Humanoid is the Inspector's label for it and is accepted as an alias, so either spelling works. model_get_rig_info echoes the CLR name (Human) and also returns isHuman.

Common model decisions:

  • Characters -> animationType="Human" (or the Humanoid alias) when retargeting is required
  • Static props -> disable cameras/lights/animation imports when unused
  • Baked-lighting meshes -> enable secondary UVs when appropriate
  • After model_set_rig or model_set_animation_clips -> call asset_reimport to refresh clips and avatar

Reimport Rule

After importer changes, use reimport when you need Unity to fully refresh the asset:

| Skill | Use | |-------|-----| | asset_reimport | Reimport one asset | | asset_reimport_batch | Reimport assets matching a search scope |

Minimal Example

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")

Exact Signatures

Exact names, parameters, defaults, and returns are defined by GET /skills/schema or unity_skills.get_skill_schema(), not by this file. Load IMPORT_REFERENCE.md for extended asset search/query helpers, platform overrides, rig/animation details, and importer-side best practices.