[UGUI]UGUI使用圖片文字(Custom Font)

  1. 如果你需要爲NGUI導出素材,建議從開頭開始看,如果是爲UGUI導出字體素材,可以直接跳到第7步。
  2. 先清理一遍Character。 方法: Edit>Clear all chars in font
  3. 在BMFont中逐個導入貼圖(在此以數字0~9爲例):Edit>Open Image Manager. 點擊Image>Import Image。不能批量導入,也不能批量編輯,雖然是免費的,但這軟件做的也太他媽傻逼了,但問題就在於還沒有更好的替代品,也只能忍了
  4. 設置好ID,這裏的ID就是ASCII碼,例如0是48,1是49,以此類推。可以在BMFont的字符窗口看到ID,鼠標懸停的字符,右下角有一對數字,前者即ASCII碼(後者是Unicode碼)
  5. Options>Export Options裏設置貼圖大小(大小自己看着給,2的N次方尺寸,多試幾次,用Options>Visualize來預覽,不要浪費,更不要一張圖裝不下,生成了兩張),Padding和Spacing設置爲0(因此在做貼圖的時候要留點空白邊).
  6. 導出Font,會生成兩個文件,一個fnt,一個圖片,fnt可以爲NGUI所用,這裏就不多說了,UGUI中使用的Custom Font只能用到圖片。
  7. BMFont的工作至此技術,下面的都是在Unity中的操作。其實不用BMFont也可以做這個工作,直接在Photoshop裏按照固定的尺寸和網格把圖片依次排列也可以達到這個效果,因爲後面我們只需要一張PNG的圖片。
  8. 把PNG圖片導入Unity工程
  9. 創建材質球,使用Unlit>Transparent材質,關聯上述貼圖
  10. 創建Custom Font,將上述材質球關聯到Default Material中。
  11. 先將Character Rects的size設置爲1,然後設置第一個元素的參數
  12. Index爲字符的Ascii碼,例如0爲48. 本例中還有個辦法,可以設置Custom font的Ascii Start Offset爲48,然後從0-9的Index依次設置成0-9,結果是完全一樣的。
    Uv:整張貼圖左下角爲(0,0)點,右上爲(1,1)點,因此如果是一個尺寸爲256*256的圖片,劃分方式是4*4,那麼第一個物體的Uv是這樣的: X:0 Y:0.75 W:0.25 H:0.25 (Y是0.75因爲是從下往上數,第一個字符的圖片左下角的Y位於3/4處。寬度和高度是0.25,因爲每個字符的寬和高都佔據了整張圖寬和高的1/4,其他Uv劃分方法的圖片類推,不多解釋了)
    Vert是實際尺寸和偏移,X:0 Y:0 W:64 H:-64 偏移爲0,像素寬是64,注意,高度是-64,至於爲什麼是負數,應該也是從左下角往右上角開始算起。(不得不說這個設置也很二,非要很彆扭的填一個負數)
    Width是64(說實話不明白這裏爲什麼又填寫一次寬度)
  13. 第一個填寫好以後,再把Character Rects的Size改成需要的字符數量,本例爲10。這樣新增的字符都會複製第一個字符的設置。只需要改動Index和Uv中的Y了。
  14. 設置好字體以後,創建一個Text,關聯上一步的字體,還要設置Material爲第9步創建的材質(這樣才能正確顯示字體效果)。之後就可以輸入你創建的自定義字體了,當然,只能顯示你創建了的字符,本例中是0~9。整個過程非常低效,期待有增強插件出現
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章