返回分配给渲染器的第一个实例化的 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); } }