Unity Shader Skills
Work with shaders - create shader files, read source code, and list available shaders.
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
shaderName
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
shaderName
string No* Shader name
shaderPath
string No* 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