1. TextMeshPro 簡介
TextMeshPro 包官方文檔 最新版,請注意版本
2. 中文顯示問題
Unity 的 TextMashPro 自帶的幾款字體都是英文字體,沒有中文。
在 inspector 中設置中文,會顯示成方塊,無法正常使用
3. 問題解決方案
3.1 動態加載字體
-
步驟 1 :
下載字體,最好是開源字體,未來在項目中可以商用 -
步驟 2 :
在 Unity project 窗口中,在 Assets 下新建 Fonts 文件夾,導入下載好的字體
- 步驟 3 : 創建動態字體:選擇下載好的字體,右鍵-Create-TextMeshPro-Font Asset
創建好的動態字體,會根據你使用過的文字,自動存儲到 Atlas 中。
3.2 靜態字體
靜態字體效率會比動態的高,適合文字較多時使用
- 步驟 1 :
下載一個 “常用漢字” 的 txt 文件,必須用 Unicode 編碼保存,比如 utf-8,將其導入 Unity - 步驟 2 :
在 Unity 菜單中,選擇 Window -- TextMeshPro -- Font Asset Creator ,打開窗口- Source Font Flie,選擇添加好的中文字體文件
- Character Set:選中 Characters from File 從文件獲取文字
- Character File : 選中 txt 文件
- Generate Font Atlas :點擊按鈕,生成靜態字體圖集(比較慢的一個過程)
- Save:保存生成的字體 asset
在我的雲盤中,分享了 16159 中文和符號 txt ,以及已經轉換好的靜態字體文件
下載鏈接:https://pan.xunlei.com/s/VMovVwhBhUQOnMxDnufbrVqRA1 提取碼:3986
3.3 字體后備 Font Fallback
某些動態字體,在使用中文標點符號和一些特殊文字符號的時候,依舊會出現方塊,這個時候可以使用 TextMeshPro 的 Font Fallback。Font Fallback 可以從另一個 FontAsset 中獲取不包含在當前 FontAsset 中的字符。
可以用 Font Fallback 來外掛一些低頻使用、或者特殊的符號、字體。
參考資料:
配套視頻教程: https://space.bilibili.com/43644141/channel/seriesdetail?sid=299912
文章也同時同步微信公眾號,喜歡使用手機觀看文章的可以關注