ProceduralMaterial Manual     Reference     Scripting  
Scripting > Runtime Classes > ProceduralMaterial
ProceduralMaterial Inherits from Material

ProceduralMaterial class.

This class exposes all properties from a Procedural Material, allowing you to modify or animate them. In order to get a Procedural Material used by an object, use the Renderer.material as a ProceduralMaterial. After modifying one or more procedural properties, call RebuildTextures to update the Procedural Material to show the changes.

JavaScript
var floatRangeProperty : String = "Saturation";
var cycleTime : float = 10;

function Update () {
var substance : ProceduralMaterial = renderer.sharedMaterial as ProceduralMaterial;
if (substance) {
// Make the property go up and down over time
var lerp = Mathf.PingPong (Time.time * 2 / cycleTime, 1);
substance.SetProceduralFloat (floatRangeProperty, lerp);
substance.RebuildTextures ();
}
}

using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
public string floatRangeProperty = "Saturation";
public float cycleTime = 10;
void Update() {
ProceduralMaterial substance = renderer.sharedMaterial as ProceduralMaterial;
if (substance) {
float lerp = Mathf.PingPong(Time.time * 2 / cycleTime, 1);
substance.SetProceduralFloat(floatRangeProperty, lerp);
substance.RebuildTextures();
}
}
}

import UnityEngine
import System.Collections

class example(MonoBehaviour):

public floatRangeProperty as string = 'Saturation'

public cycleTime as single = 10

def Update():
substance as ProceduralMaterial = renderer.sharedMaterial
if substance:
lerp as single = Mathf.PingPong(((Time.time * 2) / cycleTime), 1)
substance.SetProceduralFloat(floatRangeProperty, lerp)
substance.RebuildTextures()

Variables
cacheSize

Set & get the Procedural cache budget.

animationUpdateRate

Set & get the update rate in millisecond of the animated substance

isProcessing

Checks if the Procedural Material is currently in the process of rebuilding the textures.

isLoadTimeGenerated

Should the Procedural Material be generated at load time?

Constructors
ProceduralMaterial

Default constructor. This should not be used.

Functions
GetProceduralPropertyDescriptions

Get an array of descriptions of all the properties this Procedural Material has.

HasProceduralProperty

Checks if the Procedural Material has a property of a given name.

GetProceduralBoolean

Get a named Procedural boolean property.

SetProceduralBoolean

Set a named Procedural boolean property.

GetProceduralFloat

Get a named Procedural float property.

SetProceduralFloat

Set a named Procedural float property.

GetProceduralVector

Get a named Procedural vector property.

SetProceduralVector

Set a named Procedural vector property.

GetProceduralColor

Get a named Procedural color property.

SetProceduralColor

Set a named Procedural color property.

GetProceduralEnum

Get a named Procedural enum property.

SetProceduralEnum

Set a named Procedural enum property.

GetProceduralTexture

Get a named Procedural texture property.

SetProceduralTexture

Set a named Procedural texture property.

IsProceduralPropertyCached

Checks if a named Procedural property is cached for efficient runtime tweaking.

CacheProceduralProperty

Specifies if a named Procedural property should be cached for efficient runtime tweaking.

ClearCache

Clear the Procedural cache.

RebuildTextures

Triggers an asyncronous rebuild of all dirty textures.

RebuildTexturesImmediately

Triggers an immediate (synchronous) rebuild of all dirty textures.

Class Variables
isSupported

Checks if the Procedural Materials are supported on the current platform.

substanceProcessorUsage

Used to specify the Substance engine CPU usage.

Class Functions
StopRebuilds

Remove the current pending rebuilds of the Procedural Material.

Inherited members
Inherited Variables
shader

The shader used by the material.

color

The main material's color.

mainTexture

The main material's texture.

mainTextureOffset

The texture offset of the main texture.

mainTextureScale

The texture scale of the main texture.

passCount

How many passes are in this material (Read Only).

renderQueue

Render queue of this material

name

The name of the object.

hideFlags

Should the object be hidden, saved with the scene or modifiable by the user?

Inherited Constructors
Material

Create a temporary material from a shader source string.

Inherited Functions
SetColor

Set a named color value.

GetColor

Get a named color value.

SetVector

Set a named vector value.

GetVector

Get a named vector value.

SetTexture

Set a named texture.

GetTexture

Get a named texture.

SetTextureOffset

Sets the placement offset of texture propertyName.

GetTextureOffset

Gets the placement offset of texture propertyName.

SetTextureScale

Sets the placement scale of texture propertyName.

GetTextureScale

Gets the placement scale of texture propertyName.

SetMatrix

Set a named matrix for the shader.

GetMatrix

Get a named matrix value from the shader.

SetFloat

Set a named float value.

GetFloat

Get a named float value.

HasProperty

Checks if material's shader has a property of a given name.

GetTag

Get the value of material's shader tag.

Lerp

Interpolate properties between two materials.

SetPass

Activate the given pass for rendering.

CopyPropertiesFromMaterial

Copy properties from other material into this material.

GetInstanceID

Returns the instance id of the object.

ToString

Returns the name of the game object.

Inherited Class Functions
operator bool

Does the object exist?

Instantiate

Clones the object original and returns the clone.

Destroy

Removes a gameobject, component or asset.

DestroyImmediate

Destroys the object obj immediately. It is strongly recommended to use Destroy instead.

FindObjectsOfType

Returns a list of all active loaded objects of Type type.

FindObjectOfType

Returns the first active loaded object of Type type.

operator ==

Compares if two objects refer to the same

operator !=

Compares if two objects refer to a different object

DontDestroyOnLoad

Makes the object target not be destroyed automatically when loading a new scene.