Renderer.material
Declaration
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); } }