Shader & Material Tools¶
Inspect, create, and modify shader assets, materials, and Shader Graph networks. Use these tools for shader development, material configuration, and visual effects.
shader¶
Read or write shader assets (.shader / .shadergraph). Inspect shader properties and keywords, create new shaders from presets or raw HLSL, or edit Shader Graph node networks.
Parameters: - action (string) — "get" | "create" | "set" | "graph_get" | "graph_create" | "graph_node" | "graph_edge" - path (string) — Shader asset path (Assets/...) - target (string, optional) — Shader compilation target - preset (string, optional) — Shader preset: "unlit" | "lit" | "transparent" - code (string, optional) — Raw HLSL shader code (used with create) - shader_name (string, optional) — Shader name identifier - prop (string, optional) — Property name (for set action) - value (string, optional) — Property value - keyword (string, optional) — Shader keyword name - enabled (string, optional) — Keyword enabled state - node_type (string, optional) — Shader Graph node type - node_id (string, optional) — Shader Graph node ID - node_action (string, optional) — Node action: "add" | "remove" | "configure" - output_node (string, optional) — Output node ID (for edge) - output_slot (int, optional) — Output slot index (for edge) - input_node (string, optional) — Input node ID (for edge) - input_slot (int, optional) — Input slot index (for edge) - edge_action (string, optional) — Edge action: "connect" | "disconnect" - name (string, optional) — Property name (for graph_node configure) - type (string, optional) — Property type (for graph_node) - default_value (string, optional) — Default value (for graph_node property) - reference_name (string, optional) — Shader reference name (for graph_node property) - new_name (string, optional) — New name for rename operations
Actions:
| Action | Purpose | Required Params | Example |
|---|---|---|---|
| get | Inspect shader properties and keywords | path | shader("get", path="Assets/Shaders/MyShader.shader") |
| create | New shader from preset or code | path, preset OR code | shader("create", path="Assets/Shaders/Custom.shader", preset="lit") |
| set | Change property or keyword | path, (prop+value) OR (keyword+enabled) | shader("set", path="Assets/Shaders/MyShader.shader", prop="_Color", value="#FF0000") |
| graph_get | Read Shader Graph nodes/edges | path | shader("graph_get", path="Assets/Shaders/MyGraph.shadergraph") |
| graph_create | New .shadergraph | path | shader("graph_create", path="Assets/Shaders/NewGraph.shadergraph") |
| graph_node | Add/remove/configure node | path, node_type, node_id, node_action | shader("graph_node", path="Assets/Shaders/MyGraph.shadergraph", node_type="ColorNode", node_id="node_1", node_action="add") |
| graph_edge | Connect/disconnect slots | path, output_node, output_slot, input_node, input_slot, edge_action | shader("graph_edge", path="Assets/Shaders/MyGraph.shadergraph", output_node="node_1", output_slot=0, input_node="node_2", input_slot=0, edge_action="connect") |
Example:
# Inspect shader
info = await shader("get", path="Assets/Shaders/Standard.shader")
# Create new shader from preset
await shader("create", path="Assets/Shaders/MyUnlit.shader", preset="unlit")
# Modify shader property
await shader("set", path="Assets/Shaders/MyShader.shader",
prop="_MainColor", value="#FF5500")
# Enable keyword
await shader("set", path="Assets/Shaders/MyShader.shader",
keyword="USE_NORMALMAP", enabled="true")
# Create Shader Graph
await shader("graph_create", path="Assets/Shaders/MyGraph.shadergraph")
# Add node
await shader("graph_node", path="Assets/Shaders/MyGraph.shadergraph",
node_type="ColorNode", node_id="node_1", node_action="add")
# Connect nodes
await shader("graph_edge", path="Assets/Shaders/MyGraph.shadergraph",
output_node="node_1", output_slot=0,
input_node="node_2", input_slot=0,
edge_action="connect")
Use Cases: - Inspect built-in shader properties and keywords - Create custom shaders without manual file editing - Build Shader Graph networks visually - Modify material shader assignments via material tool
Note: For material shader assignment (applying a shader to a scene material), use material tool instead.
material¶
Create and configure materials. See Asset Tools — material for full documentation.
Common Patterns¶
| Task | Tools | Example |
|---|---|---|
| Inspect shader properties | shader("get", path) | await shader("get", path="Assets/Shaders/Standard.shader") |
| Create custom shader | shader("create", path, preset) | await shader("create", path="Assets/Shaders/Custom.shader", preset="unlit") |
| Create material with shader | material("create", path, shader) | await material("create", path="Assets/Materials/New.mat", shader="Standard") |
| Change material color | material("set", path, prop, value) | await material("set", path="Assets/Materials/Player.mat", prop="_Color", value="#FF0000") |
| Apply material to scene object | material("copy", source, targets) | await material("copy", source="Assets/Materials/Base.mat", targets="Player") |
| Build Shader Graph | shader("graph_create") → shader("graph_node") → shader("graph_edge") | Sequential node/edge operations |
See also: Assets Tools for material asset management, Objects Tools for set_material quick helper.