《Unity开发实战》——3.9节鼠标悬停时高亮显示材质
本節書摘來自華章社區《Unity開發實戰》一書中的第3章,第3.9節鼠標懸停時高亮顯示材質,作者 (愛爾蘭)Matt Smith (巴西)Chico Queiroz,更多章節內容可以訪問云棲社區“華章社區”公眾號查看
3.9 鼠標懸停時高亮顯示材質
高亮對象是讓玩家知道這個對象可以交互的最有效的方式。在拼圖游戲和點擊式冒險游戲中很有用,3D用戶界面中也可以用。
3.9.1 準備工作
本節中需要一個 3D 模型和一個 2D 紋理貼圖,也可以直接導入0423_03_08文件夾中名為highlight的包。
3.9.2 操作步驟
請按照下面的步驟實現鼠標懸停時高亮材質:
1)導入包,并打開highlightScene 場景。
2)在Hierarchy 視圖中,選擇 3D 對象讓其高亮(名為highlightCube)。
3)在 Inspector 視圖中,應該會顯示這個對象的材質,使用Shader的下拉菜單把值從Diffuse修改成VertexLit。
4)把baseBox 紋理應用到材質的Base紋理。
5)注意 VertexLit 著色器有一個屬性叫做Emissive Color,默認是black。如果想預覽其變化,可以修改成green(但要記得改回來)。
6)在Project視圖中,通過下拉菜單創建一個C#腳本,命名為HighlightObject 然后打開。
7)替換成下面的代碼:
10)通過Component | Physics | Box Collider 添加一個盒子碰撞器(box collider )到 highlightCube對象上。
11)測試場景。盒子應該會在鼠標懸停時高亮(點擊時更亮)。
3.9.3 實現原理
box collider 通過盒子探測鼠標指針,像改變發光色值的觸發器一樣工作。mouseon 布爾變量用于探測鼠標按鈕在box collider上是否松開,并相應地修改其顏色。
3.9.4 更多內容
可以用其他shaders實現更多有意思的東西,但是一定要修改特定的材質屬性。
如果在腳本中把_Emission 替換成 _Color自發光著色器就會工作了。
透明著色器(Transparent shaders)也是一個有意思的東西。可以通過修改main color的Alpha值而達到修改透明度的目的(應該在腳本中的_Color相關的代碼中)。
總結
以上是生活随笔為你收集整理的《Unity开发实战》——3.9节鼠标悬停时高亮显示材质的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小学期学习记录(一)
- 下一篇: EntityFramework Core