2010-12-02

Unity 3D 顯示字串

Unity 有兩種物件專門用來顯示字串,分另是 GUI Text 和 3D Text (Text Mesh)。



GUI Text 使用上相當方便,螢幕座標設定範圍是 0.0 ~1.0,只能做 2D 顯示,3D Text 則是在 3D 空間實際產生 Mesh 並以貼圖的方式顯示字串。大概可以了解到優缺點如下:

GUI Text
優點:使用方便, 速度快。
缺點:無法旋轉,無法覆蓋,無法變形。

3D Text
優點:所有可以應用在 Mesh 上的功能。
缺點:因為要畫Mesh並做貼圖動作,也許速度較慢,設定較麻煩。

礙於功能上的需要,例如字串的旋轉、縮放效果。似乎 2D 的 GUI 也使用 3D Text (Text Mesh) 會比較合理,但 3D Text 在透視投影模式的 Camera 之下顯示不如 GUI Text 來得清晰,其實透過設定就可以讓 3D Text 顯示的效果與 GUI Text 一模一樣,設定方法如下:


1) 將 Camera 的投影模式設定成 Orthographic,並設定  Orthographic Size 為 Screen.height 的 0.5 倍。
2) 設定 3D Text 物件 Scale 的 x, 和 y 分別是 Orthographic Size 的 0.022 倍,例如 Orthographic Size 為 100,則 Scale 就是 2.2,固定是  10 倍,此時的 Font Size 值效果將與 GUI Text 的 Font Size 值效果相同。

這邊可能有疑問的是 Camera 若設定成 Orthographic 投影模式,則會影響到其它物件的顯示,解決方法是在場景裡新建一個 Camera, 由此新建的 Camera 負責 Text 的部分,利用 Layer 及 Culling Mask 的功能把揚景裡的物件及 3D Text 區分開並分別指定給各個 Camera。

0 意見 :

張貼留言