当前位置: 首页 > 工具软件 > material > 使用案例 >

Material类

宋建本
2023-12-01

一、Material类属性及函数

首先提供官方参考文档:API-Reference-MeshRenderer

概述: MeshRenderer类继承自Renderer类;

属性

  • material---用于获取当前物体的第一个材质
  • sharedMaterial---用于获取当前物体的第一个材质;与material区别在于获取材质时,sharedMaterial代表的是公用的材质资源,也就是assets文件夹下的资源,那么即使退出运行之后,材质依然会保留属性内容的更改;而使用material属性仅仅是游戏运行时创建的一个新的实例,游戏退出运行后,实例销毁;如下,创建两个立方体,赋予同一个材质,修改颜色;
Material mat = this.GetComponent<MeshRenderer>().sharedMaterial;
mat.color = Color.red;
  • shader:指定材质的shader

方法

  • GetInt() / SetInt() / GetFloat() / SetFloat():一系列用于与材质shader内的变量交互的函数;

二、案例使用

1.应用场景

sharedMaterial用在游戏中,主要用于只读;如果需要修改,则要使用material;

但是要注意material的使用,material的set和get方法中,它是通过创建一个材质的实例副本来作返回值,所以我们每次获取material都会创建一个实例,如下代码是大忌,因为每一帧都会创建实例,会不断累积造成大量内存占用;需要在start中创建变量用于实例副本的引用;

void Update()
{
    target.GetComponent<MeshRenderer>().material.color = Color.red;
}

 

 类似资料: