Install any skill in seconds. Free to start, no credit card required.
Get Started Free →besty0728/unity-material
Edit Unity material and shader properties across Built-in/URP/HDRP — colors, textures, floats, keywords, render queue, batch-apply.
4 of 24 test cases passed with the skill.
Tokens, turns and time describe resource use, not a dollar price.
Lift withheld: 5 comparable cases; this report requires 8.
This benchmark measured an earlier version of the skill.
A newer attempt on gemini-3.6-flash on 10/11/2026 did not produce a publishable comparison (not comparable). The snapshot above is the previously measured run.
One of 4 test cases the skill fixed. Same model, same prompt, with and without the skill.
Delete the unused material asset file located at `Assets/Materials/Obsolete_OldMat.mat` from the Unity project.
| Checked | Without skill | With skill |
|---|---|---|
| Explains that deleting material assets requires asset management skills. | Missed | Passed |
| Avoids calling material module skills to delete asset files. | Passed | Passed |
The instructions your model reads when the skill loads.
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.
BATCH-FIRST: Use
*_batchskills when operating on 2+ objects/materials.
material_create, material_create_batch, material_assign, material_assign_batch, material_duplicate, material_set_color / _emission / _texture / _float / _int / _vector / _keyword / _render_queue / _shader / _texture_offset / _texture_scale / _gi_flags, and the *_batch variants) need user grant; grant triggers a single server-side execution that returns the result.material_get_properties, material_get_keywords) are SkillMode.SemiAuto — they run in all three modes without grant.asset module.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–255material_set_property does not exist → use the specific setter: material_set_float, material_set_int, material_set_vector, material_set_colormaterial_get_color does not exist → use material_get_properties (returns all properties including colors)Routing:
material_set_shader (this module)material_set_texture_scale / material_set_texture_offset⚠️ Targeting a GameObject edits the material asset, not that one object. There is no per-object material instance here: every
material_set_*resolves a GameObject torenderer.sharedMaterialand writes the asset on disk — an asset mutation, not a scene edit, whatever the individual skill's declared flags say. A freshly created primitive carries Unity's built-inDefault-Material, somaterial_set_color(name="Cube")recolours every object in the project still using it — the classic "I coloured one cube and the whole scene changed" bug. Target by GameObject name only after confirming that object owns a material nobody else shares (material_get_properties→materialPathnames the asset that would be written).
Safe route for "make this object red" — create, colour the asset by path, then assign:
unity_skills.call_skill("material_create", name="Red", savePath="Assets/Materials")
unity_skills.call_skill("material_set_color", path="Assets/Materials/Red.mat", r=1, g=0, b=0)
unity_skills.call_skill("material_assign", name="Cube", materialPath="Assets/Materials/Red.mat")
test cases passed with the skill
More skills from the same source and nearby in the registry, with their headline benchmark lift.