Legacy Documentation: Version 5.0
Language: English
  • C#
  • JS

Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

Material.Material

Switch to Manual
public Material(contents: string)

Parameters

Description

Create a temporary material from a shader source string.

If you have a script which implements a custom special effect, you implement all the graphic setup using shaders & materials. Use this function to create a custom shader & material inside your script. After creating the material, use SetColor, SetTexture, SetFloat, SetVector, SetMatrix to populate the shader property values.

// Creates an additive-blended material and uses it for rendering
var color = Color.white;

function Start () { var shaderText = "Shader \"Alpha Additive\" {" + "Properties { _Color (\"Main Color\", Color) = (1,1,1,0) }" + "SubShader {" + " Tags { \"Queue\" = \"Transparent\" }" + " Pass {" + " Blend One One ZWrite Off ColorMask RGB" + " Material { Diffuse [_Color] Ambient [_Color] }" + " Lighting On" + " SetTexture [_Dummy] { combine primary double, primary }" + " }" + "}" + "}"; var rend = GetComponent.<Renderer>(); rend.material = new Material(shaderText); rend.material.color = color; }

NOTE: Creating materials this way supports only simple shaders (fixed function ones). If you need a surface shader, or vertex/pixel shaders, you'll need to create shader asset in the editor and use that.

See Also: ShaderLab documentation.


public Material(shader: Shader)

Parameters

Description

Create a temporary Material from a Shader.

If you have a script which implements a custom special effect, you implement all the graphic setup using shaders & materials. Use this function to create a custom shader & material inside your script. After creating the material, use SetColor, SetTexture, SetFloat, SetVector, SetMatrix to populate the shader property values.

// Creates a material from shader and texture references.
var shader : Shader;
var texture : Texture;
var color : Color;

function Start() { var rend = GetComponent.<Renderer>(); rend.material = new Material(shader); rend.material.mainTexture = texture; rend.material.color = color; }
// Creates a cube and assigns a material with a builtin Specular shader.
function Start () {
	var cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
	var rend = cube.GetComponent.<Renderer>();
	rend.material = new Material(Shader.Find("Specular"));
}

public Material(source: Material)

Parameters

Description

Create a temporary Material by copying the shader and all properties from the source Material.