Legacy Documentation: Version 4.5.0

Script language:

  • JS
  • C#
  • Boo
Script language

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

Material.Material

Material(contents: string)
Material(string contents);
def Material(contents as string)

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 }" +
			"	}" +
			"}" +
			"}";
		renderer.material = new Material( shaderText );
		renderer.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.

Material(shader: Shader)
Material(Shader shader);
def Material(shader as Shader)

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&texture references
	var shader : Shader;
	var texture : Texture;
	var color : Color;
	function Start () {
		renderer.material = new Material (shader);
		renderer.material.mainTexture = texture;
		renderer.material.color = color;
	}
	// Creates a cube and assigns a material with a builtin Specular shader.
	function Start () {
		var cube = GameObject.CreatePrimitive (PrimitiveType.Cube);
		cube.renderer.material = new Material (Shader.Find("Specular"));
	}
Material(source: Material)
Material(Material source);
def Material(source as Material)

Description

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