Files

3.6 KiB
Raw Permalink Blame History

Material & shader commands

Read and edit material shader properties, and discover/introspect shaders so an agent can pick a valid shader name and property set.

Materials

get_material_properties

Read a material's shader, render queue, enabled keywords, and all shader properties with their current values (Color as [r,g,b,a], Vector as [x,y,z,w], Texture as an object reference).

Parameter Required Default Description
material yes Reference to the .mat asset (or a loaded material) to read (path / guid / globalId / instanceId).

Returns: MaterialPropertiesResult

set_material_properties

Set shader properties on a material (Float/Range/Int=number; Color=[r,g,b,a] or "#RRGGBBAA" hex; Vector=[x,y,z,w]; Texture=an object reference or null to clear), optionally reassign the shader, set the render queue, and toggle keywords. Unknown names / type mismatches are reported in unknown[].

Parameter Required Default Description
material yes Reference to the .mat asset (or a loaded material) to edit (path / guid / globalId / instanceId).
shader no Reassign the material's shader by name (e.g. "Standard", "Universal Render Pipeline/Lit", or a Shader Graph shader name). Applied before properties so new property names resolve against the new shader.
properties no JSON object of shader property name -> value. Names must include the leading underscore (e.g. _BaseColor). Float/Range/Int=number; Color=[r,g,b,a] or hex string; Vector=[x,y,z,w]; Texture=an object reference {guid/path} or null.
renderQueue no Explicit render queue, or -1 to inherit from the shader. Omit to leave unchanged.
enableKeywords no Shader keywords to enable (e.g. _NORMALMAP, _EMISSION).
disableKeywords no Shader keywords to disable.
confirm no false Reserved for parity; editing an existing material is non-destructive and undoable, so it is not required.
dry_run no false If true, validate the shader, resolve property names and texture refs, and report applied[]/unknown[] without writing anything.

Returns: SetMaterialPropertiesResult

Shaders

list_shaders

Discover available shaders so an agent can pick a valid name for set_material_properties / create_asset. Returns [{ name, assetPath|null, isBuiltin, isSupported }].

Parameter Required Default Description
filter no Case-insensitive substring matched against the shader name (e.g. "URP", "Lit").
includeBuiltin no true Include built-in/engine shaders (those with no project asset path).
limit no 200 Maximum number of shaders to return.

Returns: object (list of ShaderInfo)

get_shader_properties

Introspect a shader's declared property list (name, description, type Color|Vector|Float|Range|TexEnv|Int, range, textureDimension, flags). Provide shader (by name) OR material (read the shader off that material).

Parameter Required Default Description
shader no Shader name (e.g. "Universal Render Pipeline/Lit"). Provide this OR 'material'.
material no Reference to a material to read the shader from instead of naming it. Provide this OR 'shader'.

Returns: ShaderPropertiesResult

See Creating commands and Connectivity.