Unity在 TextMeshPro 中使用中文【轉自 chutianshu / AwesomeUnityTutorial】


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

文章也同時同步微信公眾號,喜歡使用手機觀看文章的可以關注


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM