>> >> >> Reference << << << <<<<<<Ref>>>>>>
>> >> >> Indexer << << << <<<<<<Idx>>>>>>
Matched: 0

Tags

    Categories

      Types

        Top Results

          Material
          M: 2025-05-31 - ljf12825

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

          Material的基本构成

          Material包括:
          1.Shader

          • 决定了材质的渲染方式和它所支持的属性
          • 常用Shader有:
            • Standard:支持金属、粗糙度工作流
            • URP/Lit(Universal Render Pipeline)专用
            • HDRP/Lit(High Definition Render Pipeline)专用
            • Unlit:不受光照影响,用于UI、特效等
            • 自定义Shader

          2.Texture

          • 常见类型:
            • Albedo(基础颜色贴图)
            • Normal Map(法线贴图,增加表面细节)
            • Metallic Map / Roughness Map(金属度/粗糙度贴图)
            • Emission Map(自发光贴图)
            • Occlusion Map(遮蔽贴图)

          3.属性值

          • 颜色、金属度、粗糙度、透明度

          创建和使用Material

          创建材质

          右键 -> Create -> Material
          

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

          应用材质

          • 方式1:拖动到物体上
          • 方式2:通过代码赋值
          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会在运行时创建该材质的副本(实例化材质)