Select your preferred scripting language. All code snippets will be displayed in this language.
Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.
CloseFor some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.
CloseReturns the first instantiated Material assigned to the renderer.
Modifying material
will change the material for this object only.
If the material is used by any other renderers,
this will clone the shared material and start using it from now on.
Note:
This function automatically instantiates the materials and makes them unique to this renderer.
It is your responsibility to destroy the materials when the game object is being destroyed. Resources.UnloadUnusedAssets
also destroys the materials but it is usually only called when loading a new level.
#pragma strict // Change renderer's material each changeInterval // seconds from the material array defined in the inspector. public var materials: Material[]; public var changeInterval: float = 0.33F; public var rend: Renderer; function Start() { rend = GetComponent.<Renderer>(); rend.enabled = true; } function Update() { if (materials.Length == 0)return ; // we want this material index now var index: int = Mathf.FloorToInt(Time.time / changeInterval); // take a modulo with materials count so that animation repeats index = index % materials.Length; // assign it to the renderer rend.sharedMaterial = materials[index]; }
using UnityEngine; using System.Collections;
// Change renderer's material each changeInterval // seconds from the material array defined in the inspector. public class ExampleClass : MonoBehaviour { public Material[] materials; public float changeInterval = 0.33F; public Renderer rend; void Start() { rend = GetComponent<Renderer>(); rend.enabled = true; } void Update() { if (materials.Length == 0) return; // we want this material index now int index = Mathf.FloorToInt(Time.time / changeInterval); // take a modulo with materials count so that animation repeats index = index % materials.Length; // assign it to the renderer rend.sharedMaterial = materials[index]; } }