レンダラーに割り当てられている最初にインスタンス化された Material を返します。
Material
を変更するとこのオブジェクトだけのためにマテリアルが変更されます。
他のレンダラーでマテリアルが使用される場合、
これは共有のマテリアルを複製し、それを使用して起動します。
Note:
この関数はマテリアルを自動的にインスタンス化し、このレンダラーに固有なものを作ります。
ゲームのオブジェクトが破壊されるとき、マテリアルを破壊することはあなたの責任です。 Resources.UnloadUnusedAssets も
マテリアルを破壊しますが、それは通常、新しいレベルを読み込むときにのみ呼び出されます。
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]; } }