本節書摘來自華章社群《unity開發實戰》一書中的第3章,第3.8節通過gui實時組合紋理,作者 (愛爾蘭)matt smith (巴西)chico queiroz,更多章節内容可以通路雲栖社群“華章社群”公衆号檢視
3.8 通過gui實時組合紋理
avatar的自定義往往包括選擇一個或多個紋理來定義外觀。本節中将實作一個gui,此gui通過組合兩個紋理通道讓玩家建立自己的avatar。
3.8.1 準備工作
本節需要的3d對象和圖檔檔案在0423_03_07 檔案夾的selecttexture 包中。
3.8.2 操作步驟
請按照下面的步驟疊加紋理:
1)把為名selecttexture 的包導入到項目中。
2)打開名為 seltextscene的場景。
3)建立基礎紋理:在project 視圖中,用下拉菜單建立一個材質,命名為selectable-material。
4)把selectablematerial材質的shader 選項修改成 decal。然後把名為 face1 和prop1的紋理貼圖作為 decal 的貼圖,如下圖所示:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL0UjNyImZyUWNlJDMmJTZjRjYxEmYmVzM0ETM3YWZlRjN0QWY1UDN28CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
8)儲存腳本,并附加到avatar 遊戲對象上。
9)在inspector 視圖中,把 faces 和 props的size 值都修改成 2。
10)把faces的 element 0 和 element 1 分别修改成face1 和 face2。props的element 0 和 element 1 也做同樣的操作 (修改成prop1和prop2):
11)播放場景,可以通過點選按鈕選擇組合的紋理:
3.8.3 實作原理
腳本讓使用者建立兩組紋理:一個作為基礎紋理(名為faces),另一個作為decal map(貼圖)(名為props)。當場景播放時,紋理顯示在gui的按鈕中,此按鈕通過調用changematerial函數修改avatar材質中的紋理。changematerial函數的參數接收分類(face 或 prop)和圖檔的索引,然後把相應的紋理貼圖指定到紋理通道。
3.8.4 更多内容