今天翻譯一篇我們人美心善、天下第一好老闆Miya在Neon noroshi官網寫的文章
修復TextMeshPro中的日文、中文和韓文文本顯示問題
3月11日
作者:Tomoko Miya
點擊此處查看原文(英文)
大家有沒有遇到過這種情況:
興奮地打開一款自己喜歡的遊戲,結果遊玩時發現——遊戲裏的文字怎麼夾雜着一大堆的□□□符號呢?!
而且這種問題似乎在日文和中文裏比較多見?
這是在使用Unity的TextMeshPro(TMP)時,你可能會遇到日文和中文顯示異常的問題。
這些語言包含龐大的字符集,而TMP要求字體圖集中包含所有需要渲染的字符。
如果文本顯示不正確,很可能是因爲生成字體時未包含必要的字符。
問題根源
TMP使用基於圖集的字體渲染系統,這意味着只有圖集中包含的字符才能正常顯示。
儘管TMP提供了預設的字符集,但許多亞洲字符(尤其是日文和中文)通常未被包含在內。
因此,當嘗試顯示這些語言的文本時,可能會出現空白或缺失符號,也就是大家看到的□□□□。
我們要如何解決呢?
爲了解決這個問題,我們需要手動識別所有必要的日文和中文字符,並確保它們被添加到字體圖集中。具體步驟如下:
收集所需字符 —— 整理項目中所有用到的字符,形成完整集合。
手動添加到TMP字體資源 —— 不依賴TMP默認字符集,而是在字體設置中手動指定字符。
重新生成字體圖集 —— 包含所有必要字符後,圖集即可支持完整渲染。
如果你遇到相同問題,建議採取類似方法。當然,你也可以利用現有文檔或資源中的字符集合來加速流程。
點擊此處複製粘貼所需字符(日/中/韓)。
總結
確保TMP字體資源包含所有必要字符,是解決日文和中文顯示問題的關鍵。
雖然TMP默認不支持所有字符,但通過手動調整,可以突破限制並實現流暢的文本渲染。
如需參考,我們在官網上保留了一份完整字符集文檔——歡迎隨時在官網上獲取!
今日小知識
有趣的是,日語片假名“ロ”(發音“Lo/Ro”)的形狀與□相似。
同樣,日語和中文的“口”(意爲“嘴巴”)也形似□,但這並非錯誤符號。是不是有點容易混淆呢?
更多遊戲資訊請關註:電玩幫遊戲資訊專區
電玩幫圖文攻略 www.vgover.com