昨晚,好友在**裡問我在unity3d中使用3d text,不想讓其穿透模型顯示,即想讓場景中的3d text與模型有正確的遮擋關係,怎麼解?
今早谷歌上查了查,明白了原因,因為3d text的預設材質的shader是gui/text shader(自然就有了gui的穿透顯示的特性),而且不可以去手動更改。
記錄解決方式如下:
1、自己寫個想要的shader,並建個使用它的材質球;
2、匯入自己的中文字型;
3、替換掉3d text上的預設材質球。
首先,搭建乙個好友在**裡描述的場景;
新建乙個shader,命名為3d text shader,並在其中貼上以下**:
shader "給乙個截圖:custom/3d text shader
" _color (
"text color
", color) = (1,1,1,1
) }
subshader
lighting off cull off zwrite on fog
blend srcalpha oneminussrcalpha
pass }}
}
新建乙個material,並指定上剛寫的shader;
下一步是導個字型檔案進來,去控制面板的字型路徑中,找乙個喜歡的中文字型複製到unity3d的assets資料夾中,我複製了乙個黑體過來;
回到unity3d中,把字型檔案的character選項改為unicode,這樣字型檔案下面的那張font texture就會出現密密麻麻地文字;
最後,選中場景中的需要被正確遮擋的3d text物體,進行以下3個操作,就完成了:
1、字型檔案拖給text mesh元件中的font;
2、剛才自己建的材質球拖給mesh renderer元件中的element 0;
3、字型下的font texture拖給材質球。
如圖:
ps:1、如果要調整字型顏色,3d text中的color屬性已經失效,需要去調整那個自己建的材質球的text color;
2、關於字型,如果無視記憶體占用的話,字型就去控制面板裡面的字型隨便複製來用,否則,想做到最優的話,建議去網上找那個三四千字的精簡字型檔。
Unity3d中3D Text對模型的穿透顯示
原帖 昨晚,好友在 裡問我在unity3d中使用3d text,不想讓其穿透模型顯示,即想讓場景中的3d text與模型有正確的遮擋關係,怎麼解?今早谷歌上查了查,明白了原因,因為3d text的預設材質的shader是gui text shader 自然就有了gui的穿透顯示的特性 而且不可以去手...
對Unity3D 中Quaternion一些整理
對unity3d 中quaternion一些整理 quaternion 中文是四元數。記得計算機圖形學中,在x,y,z的基礎上新增了新的乙個w。這樣算是所謂的四元數。具體的解釋可以參考,百科等。quaternion.angleaxis angleaxis角軸 繞axis軸,旋轉angle角度。例如 ...
Unity3D開發(九) Unity3d流光效果
遊戲開 壇 hello game 遊戲開發群 201276069 之前曾經注意過material 中紋理的屬性都有 tiling 和offset 但沒有深究過其用途,今天才知道竟然可以利用 offset做uv 動畫,從而完成各種有趣的動畫,比如流光效果!流過效果即通常一條高光光在物體上劃過,模擬高光...