遊戲中,大多數材質的應用都離不開紋理,而紋理自己是圖片。因此,在學習本章時,最好在電腦上安裝一個能夠編輯圖片的功能強大的軟件,如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人!