天天看點

《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)替換成下面的代碼:

《Unity開發實戰》——3.9節滑鼠懸停時高亮顯示材質
《Unity開發實戰》——3.9節滑鼠懸停時高亮顯示材質

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相關的代碼中)。

繼續閱讀