Version: 2020.3
public Material material ;

描述

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