How to Develop a Game
Material
PublishDate: 2025-05-31 | CreateDate: 2025-05-31 | LastModify: 2025-05-31 | Creator:ljf12825

Unity中的Material是用来定义一个物体外观的核心组件,它将Shader与各种Texture和属性值绑定到一起,决定了一个对象在场景中如何表现

Material的基本构成

Material包括:
1.Shader

2.Texture

3.属性值

创建和使用Material

创建材质

右键 -> Create -> Material

然后可以给材质命名,设置颜色、贴图等属性

应用材质

Renderer renderer = GetComponent<Renderer>();
renderer.material = myMaterial;

材质在不同渲染管线中的区别

渲染管线使用的着色器特点
Built-inStandard Shader默认渲染管线
URPURP/Lit Shader性能优化,适合中低端设备
HDRPHDRP/Lit Shader高质量视觉,适合高端项目

材质的进阶使用

1.多材质

一个物体的每个sub-mesh都可以使用不同的材质

Renderer renderer = GetComponent<Renderer>();
renderer.materials[0] = mat1;
renderer.materials[1] = mat2;

2.材质属性通过代码修改

Material mat = renderer.material;
mat.SetColor("_Color", Color.red);
mat.SetFloat("_Glossiness", 0.3f);

如果你修改的是material而不是sharedMaterial,Unity会在运行时创建该材质的副本(实例化材质)