agentleFS
batihandevbatihandev/unity-mcp-skills/skills/material/SKILL.md

unity-material

Skill7 starsChanged 7 months agoMITView on GitHub

Use when users want to create materials, set colors, textures, emission, or shader properties.

The file

We split this skill into the rules it gives an agent

4 rules. About 0 are common, 4 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈4

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Create a new material (auto-detects render pipeline).

    line 54
  2. Distinctive:

    Use material instances (by name) for runtime changes

    line 260
  3. Distinctive:

    Use material assets (by path) for persistent changes

    line 261
  4. Distinctive:

    Check shader property names in Unity Inspector

    line 262

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Unity Material Skills

Overview

BATCH-FIRST: Use *_batch skills when operating on 2+ objects/materials.

Common Mistakes

DO NOT (common hallucinations):

  • material_set_metallic / material_set_smoothness do not exist → use material_set_float with propertyName="_Metallic" or "_Glossiness" (Standard) / "_Smoothness" (URP)
  • material_set_color r/g/b/a range is 0–1, not 0–255
  • material_set_property does not exist → use the specific setter: material_set_float, material_set_int, material_set_vector, material_set_color
  • material_get_color does not exist → use material_get_properties (returns all properties including colors)

Routing:

  • For shader changes → material_set_shader (this module)
  • For texture tiling → material_set_texture_scale / material_set_texture_offset
  • Pipeline-specific property names differ: check Render Pipeline Compatibility table in this doc

Object Targeting: Single-object skills accept name (GameObject name) or path (material asset path like Assets/Materials/X.mat). For asset-based operations, prefer path.

Recipe path rule: ../../recipes/material/<command>.md

Skills Overview

Single ObjectBatch VersionUse Batch When
material_creatematerial_create_batchCreating 2+ materials
material_assignmaterial_assign_batchAssigning to 2+ objects
material_set_colormaterial_set_colors_batchSetting colors on 2+ objects
material_set_emissionmaterial_set_emission_batchSetting emission on 2+ objects

No batch needed:

  • material_set_texture - Set texture
  • material_set_texture_offset/scale - Texture tiling
  • material_set_float/int/vector - Set properties
  • material_set_keyword - Enable/disable shader keywords
  • material_set_render_queue - Set render queue
  • material_set_shader - Change shader
  • material_get_properties/keywords - Query properties
  • material_duplicate - Duplicate material

Skills

material_create

Create a new material (auto-detects render pipeline).

ParameterTypeRequiredDefaultDescription
namestringYes-Material name
shaderNamestringNoauto-detectShader (auto-detects URP/HDRP/Standard)
savePathstringNonullSave path (folder or full path)

material_create_batch

Create multiple materials.

Returns: {success, totalItems, successCount, failCount, results: [{success, name, path}]}

material_assign

Assign material to object's renderer.

ParameterTypeRequiredDescription
namestringNo*GameObject name
instanceIdintNo*Instance ID
pathstringNo*Material asset path (for asset)
materialPathstringYesMaterial to assign

material_assign_batch

Assign materials to multiple objects.

Returns: {success, totalItems, successCount, failCount, results: [{success, name, materialPath}]}

material_set_color

Set material color with optional HDR intensity.

ParameterTypeRequiredDefaultDescription
namestringNo*GameObject name
pathstringNo*Material asset path
r, g, bfloatNo1Color (0-1)
afloatNo1Alpha
propertyNamestringNoauto-detectColor property
intensityfloatNo1.0HDR intensity (>1 for bloom)

material_set_colors_batch

Set colors on multiple objects.

Returns: {success, totalItems, successCount, failCount, results: [{success, name}]}

material_set_emission

Set emission color with auto-enable keyword.

ParameterTypeRequiredDefaultDescription
namestringNo*GameObject name
pathstringNo*Material asset path
r, g, bfloatNo1Emission color (0-1)
intensityfloatNo1.0HDR intensity (>1 for bloom)
enableEmissionboolNotrueAuto-enable _EMISSION keyword

material_set_emission_batch

Set emission on multiple objects.

Returns: {success, totalItems, successCount, failCount, results: [{success, name}]}

material_set_texture

Set material texture.

ParameterTypeRequiredDefaultDescription
namestringNo*GameObject name
pathstringNo*Material asset path
texturePathstringYes-Texture asset path
propertyNamestringNoauto-detectTexture property

material_set_float

Set a float property on a material.

ParameterTypeRequiredDescription
namestringNo*GameObject name
pathstringNo*Material asset path
propertyNamestringYesProperty name
valuefloatYesValue

material_set_int

Set an integer property on a material.

ParameterTypeRequiredDescription
namestringNo*GameObject name
pathstringNo*Material asset path
propertyNamestringYesProperty name
valueintYesValue

material_set_keyword

Enable/disable shader keywords.

ParameterTypeRequiredDefaultDescription
namestringNo*GameObject name
pathstringNo*Material asset path
keywordstringYes-Keyword name
enableboolNotrueEnable or disable

Common Keywords: _EMISSION, _NORMALMAP, _METALLICGLOSSMAP, _ALPHATEST_ON, _ALPHABLEND_ON

material_get_properties

Get all material properties.

ParameterTypeRequiredDescription
namestringNo*GameObject name
pathstringNo*Material asset path

Returns: {colors, floats, vectors, textures, integers, keywords, renderQueue}

material_get_keywords

Get all enabled shader keywords on a material.

ParameterTypeRequiredDescription
namestringNo*GameObject name
pathstringNo*Material asset path

material_duplicate

Duplicate a material asset.

ParameterTypeRequiredDescription
sourcePathstringYesSource material path
newNamestringYesName for the duplicated material
savePathstringNoOptional folder/path override for the duplicated material

material_set_shader

Change the shader of a material.

ParameterTypeRequiredDescription
namestringNo*GameObject name
pathstringNo*Material asset path
shaderNamestringYesShader name

material_set_vector

Set a Vector4 property on a material.

ParameterTypeRequiredDescription
namestringNo*GameObject name
pathstringNo*Material asset path
propertyNamestringYesProperty name
x, y, z, wfloatYesVector components

material_set_texture_offset

Set texture offset (tiling position).

ParameterTypeRequiredDescription
namestringNo*GameObject name
pathstringNo*Material asset path
propertyNamestringNoTexture property name
x, yfloatYesOffset values

material_set_texture_scale

Set texture scale (tiling).

ParameterTypeRequiredDescription
namestringNo*GameObject name
pathstringNo*Material asset path
propertyNamestringNoTexture property name
x, yfloatYesScale values

material_set_render_queue

Set material render queue.

ParameterTypeRequiredDescription
namestringNo*GameObject name
pathstringNo*Material asset path
renderQueueintYesRender queue value

material_set_gi_flags

Set material global illumination flags.

ParameterTypeRequiredDescription
namestringNo*GameObject name
pathstringNo*Material asset path
flagsstringYesGI flags (None/Emissive/RealtimeEmissive/BakedEmissive)

Example: Efficient Material Setup

See ../../recipes/material/README.md for per-command C# templates.

Render Pipeline Compatibility

Skills auto-detect and adapt to your render pipeline:

PipelineDefault ShaderColor PropertyTexture Property
Built-inStandard_Color_MainTex
URPUniversal Render Pipeline/Lit_BaseColor_BaseMap
HDRPHDRP/Lit_BaseColor_BaseColorMap

Best Practices

  1. Save materials as assets for reuse
  2. Use material instances (by name) for runtime changes
  3. Use material assets (by path) for persistent changes
  4. Check shader property names in Unity Inspector
  5. URP/HDRP have different property names than Standard

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.