版本: Unity 6 (6000.0)
语言英语
  • C#

Renderer.material

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们会阅读用户提出的每一项更改建议,并在适用情况下进行更新。

关闭

提交失败

由于某种原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

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); } }