返回指定给渲染器的第一个实例化 Material。
修改 material
将仅更改该对象的材质。
如果材质被任何其他渲染器使用,
则克隆共享的材质并从现在开始使用它。
**注意:**\
该函数自动实例化材质并使其对该渲染器唯一。
当销毁游戏对象时,您负责销毁该材质。Resources.UnloadUnusedAssets
也会销毁材质,但是通常仅当加载新关卡时调用。
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { Material m_Material;
void Start() { //Fetch the Material from the Renderer of the GameObject m_Material = GetComponent<Renderer>().material; print("Materials " + Resources.FindObjectsOfTypeAll(typeof(Material)).Length); }
void Update() { if (Input.GetKeyDown(KeyCode.A)) { //Output the amount of materials before GameObject is destroyed print("Materials " + Resources.FindObjectsOfTypeAll(typeof(Material)).Length); //Destroy GameObject Destroy(gameObject); } }
void OnMouseOver() { // Change the Color of the GameObject when the mouse hovers over it m_Material.color = Color.red; }
void OnMouseExit() { //Change the Color back to white when the mouse exits the GameObject m_Material.color = Color.white; }
void OnDestroy() { //Destroy the instance Destroy(m_Material); //Output the amount of materials to show if the instance was deleted print("Materials " + Resources.FindObjectsOfTypeAll(typeof(Material)).Length); } }