![Unity3D网络游戏实战](https://wfqqreader-1252317822.image.myqcloud.com/cover/295/847295/b_847295.jpg)
1.5 材质
1.5.1 什么是材质
模型的好坏取决于形状、材质和贴图,图1-22所展示的便是不同材质的方块,最左边的方块使用默认材质,没有贴图,第二个和第三个方块使用了不同的贴图。
![](https://epubservercos.yuewen.com/FABC1B/6158700004756901/epubprivate/OEBPS/Images/figure_0027_0002.jpg?sign=1739260859-8oas3ym3jsCDe5ZjaHCC15Usw0nE5miL-0-d4d459b808ca6cf1bb0110d6ad0b3d84)
图1-22 不同材质的方块
一个模型可能包含多个材质,一个材质也可能对应于多张贴图,它们的对应关系如图1-23所示。
![](https://epubservercos.yuewen.com/FABC1B/6158700004756901/epubprivate/OEBPS/Images/figure_0027_0003.jpg?sign=1739260859-zmGQ53pKw50WUXLqywHDNlaUSz3ZqusE-0-479c020444575a1edd4679abd52ecdcf)
图1-23 模型、材质和贴图的关系
可以把材质当作是贴图的表现效果,图1-24所示的两个正方体使用了相同的贴图,但材质的Tiling属性(同一个面平铺多少张贴图)不同,因此表现出来的效果就有很大的差别。
![](https://epubservercos.yuewen.com/FABC1B/6158700004756901/epubprivate/OEBPS/Images/figure_0028_0001.jpg?sign=1739260859-HzfG8ElOiHYQZSlajHUj5A1aJC1ZMl4y-0-145119d9be7800bdd6047a6cfd0cfc42)
图1-24 同一贴图,不同材质的对比
1.5.2 如何创建材质
右击Project面板,在弹出的菜单中选择Create→Material即可创建材质文件(材质球)。将材质文件拖曳到游戏物体上即可给物体设置材质(相当于设置物体的Mesh Renderer组件的Materials属性,1.5.3节将会介绍Mesh Renderer)。选择材质球,可以在Inspector面板中看到它的属性,改变属性即可改变物体的渲染效果(如改变Albedo的颜色,后文会介绍常用的属性),如图1-25所示。
![](https://epubservercos.yuewen.com/FABC1B/6158700004756901/epubprivate/OEBPS/Images/figure_0028_0002.jpg?sign=1739260859-PONefn16q2ZyWdEAAMa3tHw6KbOOPqMn-0-994fa504f51cdbeb78d363f7e7a5048d)
图1-25 创建材质球,附加到物体上
1.5.3 Mesh Renderer组件
三维模型除了Transform组件外,一般还带有Mesh Renderer组件(网格渲染器),它从网格过滤器(Mesh Filter)中获得几何形状,并且根据Transform定义的位置进行渲染。Mesh Renderer的属性中Cast Shadows表示模型是否有阴影,Receive Shadows表示其他模型的阴影是否能够投射到该模型上,Materials是模型的材质列表(如图1-26所示)。
![](https://epubservercos.yuewen.com/FABC1B/6158700004756901/epubprivate/OEBPS/Images/figure_0029_0001.jpg?sign=1739260859-L5NxacIQCaBkA0WyLgt3mue6YXYBN1tg-0-0f5f533a104d45c7d5977d16f7f9d743)
图1-26 Mesh Renderer组件
1.5.4 着色器
有的模型只有一种材质,有的则可以有多种,一种材质必须对应着一个Shader(即着色器)。Unity3D内置了多种着色器,每种着色器会使材质有不同的表现效果,可以通过Shader选项选择不同的着色器,如图1-27所示。
![](https://epubservercos.yuewen.com/FABC1B/6158700004756901/epubprivate/OEBPS/Images/figure_0030_0001.jpg?sign=1739260859-oNgi8o4wYQDfthBZ4qCiHOrG1SkZsDrq-0-e7ef34d815bc60f232dcee7f920a1309)
图1-27 选择着色器
图1-28展示了不同着色器的表现效果。不同着色器有不同的属性,比如有一些可以设置反光度,有一些则不能。Standard着色器为通用的着色器,通过合理的属性设置,基本能够满足普通游戏的需求。下面将着重讲解Standard着色器的属性。
![](https://epubservercos.yuewen.com/FABC1B/6158700004756901/epubprivate/OEBPS/Images/figure_0030_0002.jpg?sign=1739260859-zGYtnzhwiYpGXkv88U8xxVsUaf9HtfO5-0-d381c247263350598bbd8f35b8144f17)
图1-28 不同着色器的表现效果
标准着色器(Standard)主要是针对硬质表面设计,可以处理现实世界中的大多数材质,比如石头、陶瓷、铜器、银器或橡胶,皮肤、头发等。Standard Shader的属性面板如图1-29所示,常用的属性介绍可参见表1-6。
![](https://epubservercos.yuewen.com/FABC1B/6158700004756901/epubprivate/OEBPS/Images/figure_0031_0001.jpg?sign=1739260859-uYp3jlFfzAv64llcYsPBk0PJZEdlU4vW-0-9e33984375ee2e752e2ce5031b12f7c3)
图1-29 Standard Shader的属性面板
表1-6 标准着色器的常见属性及说明
![](https://epubservercos.yuewen.com/FABC1B/6158700004756901/epubprivate/OEBPS/Images/figure_0031_0002.jpg?sign=1739260859-N0IjrO5Jc2HdpGQlcru5Qez0YeKKDYCA-0-2c222feee0c78f80548b97f223b4d733)