unity-shader
Unity Shader Skills
Work with shaders - create shader files, read source code, and list available shaders.
Guardrails
Mode: Full-Auto required
DO NOT (common hallucinations):
shader_set_propertydoes not exist → usematerial_set_float/material_set_color/etc. on the material, not the shadershader_apply/shader_assigndo not exist → usematerial_set_shaderto change a material's shadershader_get_propertiesreturns shader property definitions (name/type/range), not current values → for material instance values usematerial_get_properties- Shader names are case-sensitive and path-like:
"Standard","Universal Render Pipeline/Lit", not"standard"or"URP Lit"
Routing:
- For material property changes → use
materialmodule - For shader keyword control →
material_set_keyword(material module) - For global shader keywords →
shader_set_global_keyword(this module)
Skills Overview
| Skill | Description |
|---|---|
shader_create |
Create shader file |
shader_read |
Read shader source |
shader_list |
List all shaders |
shader_find |
Find shader by name |
shader_delete |
Delete shader file |
shader_get_properties |
Get shader properties |
shader_check_errors |
Check shader for compilation errors |
shader_get_keywords |
Get shader keyword list |
shader_get_variant_count |
Get shader variant count for performance analysis |
shader_create_urp |
Create a URP shader from template |
shader_set_global_keyword |
Enable or disable a global shader keyword |
Skills
shader_create
Create a shader file from template.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
shaderName |
string | Yes | - | Shader name (e.g., "Custom/MyShader") |
savePath |
string | Yes | - | Save path |
template |
string | No | "Unlit" | Template type |
Templates:
| Template | Description |
|---|---|
Unlit |
Basic unlit shader |
Standard |
PBR surface shader |
Transparent |
Alpha blended |
shader_read
Read shader source code.
| Parameter | Type | Required | Description |
|---|---|---|---|
shaderPath |
string | Yes | Shader asset path |
Returns: {success, path, content}
shader_list
List all shaders in project.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
filter |
string | No | null | Name filter |
limit |
int | No | 100 | Max results |
Returns: {success, count, shaders: [{name, path}]}
shader_find
Find a shader by name.
| Parameter | Type | Required | Description |
|---|---|---|---|
searchName |
string | Yes | Shader name to find |
Returns: {success, name, path, propertyCount}
shader_delete
Delete a shader file.
| Parameter | Type | Required | Description |
|---|---|---|---|
shaderPath |
string | Yes | Shader asset path |
shader_get_properties
Get all properties defined in a shader.
| Parameter | Type | Required | Description |
|---|---|---|---|
shaderNameOrPath |
string | Yes | Shader name or shader asset path |
Returns: {success, properties: [{name, type, description}]}
shader_check_errors
Check shader for compilation errors.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
shaderNameOrPath |
string | Yes | - | Shader name or asset path (e.g., "Custom/MyShader" or "Assets/Shaders/My.shader") |
Returns: { shaderName, hasErrors, messageCount }
shader_get_keywords
Get shader keyword list.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
shaderNameOrPath |
string | Yes | - | Shader name or asset path (e.g., "Custom/MyShader" or "Assets/Shaders/My.shader") |
Returns: { shaderName, keywordCount, keywords: [{ name, type }] }
shader_get_variant_count
Get shader variant count for performance analysis.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
shaderNameOrPath |
string | Yes | - | Shader name or asset path (e.g., "Custom/MyShader" or "Assets/Shaders/My.shader") |
Returns: { shaderName, subshaderCount, totalPasses }
shader_create_urp
Create a URP shader from template (type: Unlit or Lit).
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
shaderName |
string | Yes | - | Shader name (e.g., "Custom/MyURPShader") |
savePath |
string | Yes | - | Save path (e.g., "Assets/Shaders/MyURP.shader") |
type |
string | No | "Unlit" | Template type: "Unlit" or "Lit" |
Returns: { success, shaderName, path, type }
shader_set_global_keyword
Enable or disable a global shader keyword.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
keyword |
string | Yes | - | Global shader keyword name |
enabled |
bool | Yes | - | true to enable, false to disable |
Returns: { success, keyword, enabled }
Example Usage
import unity_skills
# Create an unlit shader
unity_skills.call_skill("shader_create",
shaderName="Custom/MyUnlit",
savePath="Assets/Shaders/MyUnlit.shader",
template="Unlit"
)
# Create a surface shader
unity_skills.call_skill("shader_create",
shaderName="Custom/MyPBR",
savePath="Assets/Shaders/MyPBR.shader",
template="Standard"
)
# Read shader source
source = unity_skills.call_skill("shader_read",
shaderPath="Assets/Shaders/MyUnlit.shader"
)
print(source['content'])
# List all custom shaders
shaders = unity_skills.call_skill("shader_list", filter="Custom")
for shader in shaders['shaders']:
print(f"{shader['name']}: {shader['path']}")
Best Practices
- Use consistent shader naming (Category/Name)
- Organize shaders in dedicated folder
- Start with templates, modify as needed
- Test shaders in different lighting conditions
- Consider mobile compatibility for builds
Exact Signatures
Exact names, parameters, defaults, and returns are defined by GET /skills/schema or unity_skills.get_skill_schema(), not by this file.
More from besty0728/unity-skills
unity-skills
Unity Editor automation via REST API — create scripts, analyze scenes, manage assets, control editor, and orchestrate workflows. Triggers: Unity, Unity Skills, in Unity, automate Unity, editor automation, create script, scene summary, build scene, 全自动模式, full auto, semi-auto, 半自动, Unity自动化, Unity编辑器, Unity技能, 操作Unity,在Unity中.
56unity-uitoolkit
UI Toolkit (UITK) for Unity — create/edit USS stylesheets and UXML layouts, configure UIDocument in scenes. Triggers: UI Toolkit, UITK, UXML, USS, UIDocument, PanelSettings, VisualElement, stylesheet, runtime UI, EditorWindow UI, 界面工具包, UI样式, 样式表, 可视化元素.
22unity-ui
Unity UI creation. Use when users want to create Canvas, Button, Text, Image, or other UI elements. Triggers: UI, canvas, button, text, image, panel, slider, toggle, UGUI, 界面, 按钮, 文本, 面板.
20unity-scriptableobject
ScriptableObject management. Use when users want to create, read, or modify ScriptableObject assets. Triggers: scriptableobject, SO, data asset, config, settings asset, 数据资产, 配置文件.
19unity-editor
Unity Editor control. Use when users want to enter play mode, select objects, undo/redo, or execute menu commands. Triggers: play, stop, pause, select, undo, redo, menu, editor, Unity编辑器, Unity播放, Unity撤销, Unity选择.
18unity-light
Unity lighting control. Use when users want to create or configure lights (Directional, Point, Spot, Area). Triggers: light, lighting, directional light, point light, spot light, shadows, intensity, 灯光, 光照, 阴影.
17