Unity3d中3D Text對模型的穿透顯示

2021-08-05 19:04:42 字數 1562 閱讀 8261

原帖:

昨晚,好友在**裡問我在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 動畫,從而完成各種有趣的動畫,比如流光效果!流過效果即通常一條高光光在物體上劃過,模擬高光...