Unity Importer logo

Unity Importer

CommunityPopular
Besty0728
unity-importer

Configure asset import settings

Overview

PublisherBesty0728
RepositoryUnity-Skills
Skill nameunity-importer
Stars
1.8K
Forks
164
Bundled files
1
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 1 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by Besty0728 on GitHub. Read the source before you install it.

Installation

Install the Unity Importer AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.

Use it in TypingMind

Enable Unity Importer in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Unity Importer on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Unity Importer is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

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:

SkillUseKey parameters
texture_get_settingsRead texture importer settingsassetPath
texture_set_settingsSet texture importer settingsassetPath, textureType?, maxSize?, filterMode?, compression?, mipmapEnabled?, sRGB?, readable?, wrapMode?
texture_set_settings_batchBatch texture settingsitems
texture_get_import_settingsRead minimal importer settings (type/maxSize/compression/filter/srgb/readable/mipmap)assetPath
texture_set_import_settingsAlternative texture import bridgesimilar texture fields

compression vocabulary. Pass the CLR member names of TextureImporterCompressionUncompressed, Compressed, CompressedHQ, CompressedLQ — which are also what the getters echo back. The Inspector's wording is accepted as aliases: NoneUncompressed, Normal and NormalQualityCompressed, LowQualityCompressedLQ, HighQualityCompressedHQ; 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:

SkillUseKey parameters
texture_find_assetsSearch Texture2D assets by AssetDatabase filterfilter?, limit? (default 50)
texture_get_infoInspect dimensions, format, and runtime memory sizeassetPath
texture_find_by_sizeFind textures in a dimension range (pixels)minSize? (0), maxSize? (99999), limit? (50)

Typed / platform overrides:

SkillUseKey parameters
texture_set_typeSwitch texture typeassetPath, 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_settingsOverride per-platform settingsassetPath, 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_settingsRead per-platform overrideassetPath, platform
texture_set_sprite_settingsSprite-specific knobs (PPU, mode)assetPath, pixelsPerUnit?, spriteMode? (None/Single/Multiple/Polygon)
sprite_set_import_settingsSprite 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:

SkillUseKey parameters
audio_get_settingsRead audio importer settingsassetPath
audio_set_settingsSet audio importer settingsassetPath, forceToMono?, loadInBackground?, loadType?, compressionFormat?, quality?
audio_set_settings_batchBatch audio settingsitems
audio_get_import_settingsRead minimal importer defaults (loadType/format/quality/forceToMono/loadInBackground)assetPath
audio_set_import_settingsAlternative audio import bridgesimilar audio fields

Clip query and info:

SkillUseKey parameters
audio_find_clipsSearch AudioClip assets by filterfilter?, limit? (default 50)
audio_get_clip_infoInspect length/channels/frequency/samples of a clipassetPath

Scene runtime (AudioSource / AudioMixer):

SkillUseKey parameters
audio_add_sourceAdd an AudioSource to a GameObjecttarget (name/instanceId/path), clipPath?, playOnAwake? (false), loop? (false), volume? (1)
audio_get_source_infoRead the AudioSource configurationtarget
audio_set_source_propertiesUpdate AudioSource fieldstarget, clipPath?, volume?, pitch?, loop?, playOnAwake?, mute?, spatialBlend?, priority?
audio_find_sources_in_sceneList all AudioSources in the active scenelimit? (default 50)
audio_create_mixerCreate a new AudioMixer assetmixerName? (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:

SkillUseKey parameters
model_get_settingsRead model importer settingsassetPath
model_set_settingsSet model importer settingsassetPath, globalScale?, meshCompression?, isReadable?, generateSecondaryUV?, animationType?, importAnimation?, importCameras?, importLights?, materialImportMode?
model_set_settings_batchBatch model settingsitems
model_get_import_settingsRead minimal importer defaults (scale/compression/animationType/importAnimation/materialImportMode)assetPath
model_set_import_settingsAlternative model import bridgesimilar model fields

Query and info:

SkillUseKey parameters
model_find_assetsSearch model assets by filterfilter?, limit? (default 50)
model_get_mesh_infoMesh vertex / triangle / submesh statstarget (name/instanceId/path) or assetPath
model_get_materials_infoInspect sub-asset materials embedded in the modelassetPath
model_get_animations_infoList animation clips and framerates on the modelassetPath
model_get_rig_infoRead animationType, avatar, skeleton binding infoassetPath

Animation and rig:

SkillUseKey parameters
model_set_animation_clipsConfigure animation clip splitsassetPath, clips (JSON array of {name, firstFrame, lastFrame, loop})
model_set_rigSwitch rig/skeleton modeassetPath, animationType (None/Legacy/Generic/Human), avatarSetup?

animationType rig mode: the CLR enum member is HumanHumanoid 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:

SkillUse
asset_reimportReimport one asset
asset_reimport_batchReimport assets matching a search scope

Minimal Example

python
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.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Unity Importer AI skill do?

Configure asset import settings

Why use Unity Importer on TypingMind?

Because you install it once and use it with any model. Unity Importer is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Unity Importer in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/Besty0728/Unity-Skills/tree/main/SkillsForUnity/unity-skills~/skills/importer. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Unity Importer?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Unity Importer?

As many as you like. As long as a model supports skills, you can use Unity Importer with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Unity Importer AI skill free?

Yes. It is published on GitHub by Besty0728 under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇