游戏中,大多数材质的应用都离不开纹理,而纹理自己是图片。因此,在学习本章时,最好在电脑上安装一个能够编辑图片的功能强大的软件,如Photoshop和GIMP。本章使用的是前者。另外,有些纹理须要包含Transparents通道,因此图片最好保存成能够存储相应信息的格式,例如,PSD和TGA。app
生活中,反射材质(reflective material)的实例有不少。例如,水面、光滑的金属、镜子等物体均可以反射其它的物体,如水中的倒影、镜子里的人物,如图3-1所示。学习
图3-1 图中的金属球,以及反射出的周围环境spa
在Unity里,能够模仿出这种反射效果。只要使用具备反射特性的着色器,而后再稍作配置便可。具体的操做过程以下:orm
(1)准备两张纹理图,其中一张纹理图须要包含透明信息,也就是有Alpha通道,而后导入到项目中。本节使用的两张纹理,如图3-2所示。对象
图3-2 导入两张纹理图游戏
(2)选中不包含透明信息的纹理,而后在Inspector视图里,作以下修改:图片
q 设置Texture Type属性为Reflection;游戏开发
q 设置Mapping属性为Cylindrical;开发
而后单击Apply按钮。如此设置,说明了此纹理将被用作圆柱体的反射图。对纹理的设置以及设置后的纹理如图3-3所示。it
图3-3 在Inspector视图对纹理的设置以及设置后的纹理
(3)在Project视图里,建立一个材质,并命名为Mat_reflect,选中它而后在Inspector视图作以下设置:
q 设置Shader(着色器)属性为Reflective/Specular;
q 设置Base(RGB) Gloss(A)为包含透明信息的纹理;
q 设置Reflection Cubemap为普通纹理;
如图3-4所示。
图3-4 在Inspector视图里 图3-5 Scene视图里的Cylinder对象
(4)在Hierarchy视图里,添加Cylinder对象。在Scene视图里看到的Cylinder如图3-5所示。它此时没有反射出周围的任何物体。
(5)拖动Mat_reflect材质到Cylinder对象上,如图3-6所示,效果就大不相同,它即显示出了自己的颜色,又反射出了周围的物体。
提示:纹理含有的透明信息,越透明所反射的物体所成的像越清晰。图3-7,调低透明度之后,反射的图像暗了,清晰度也降低了。
图3-6 正在反射出周围物体的Cylinder对象 图3-7 调低透明度之后,反射成像的效果
本文选自:Unity 游戏开发技巧集锦大学霸内部资料,转载请注明出处,尊重技术尊重IT人!