brophp框架做網站網站seo方案策劃書
文章目錄
- 1. TextMeshPro簡介
- 2. TextMeshPro創(chuàng)建
- 3. TextMeshPro腳本中調用
- 4. TextMeshPro字體設置及中文支持
- 過程中出現的一些問題
1. TextMeshPro簡介
【官網文檔】https://docs.unity.cn/cn/2020.3/Manual/com.unity.textmeshpro.html
TextMeshPro 是 Unity 的最終文本解決方案。它是 Unity UI Text 和舊版 Text Mesh 的完美替代方案。
功能強大且易于使用的 TextMeshPro(也稱為 TMP)使用高級文本渲染技巧以及一組自定義著色器;它大幅改進了視覺質量,同時為用戶創(chuàng)建文本樣式和紋理提供了難以置信的靈活度。
TextMeshPro 能夠更好地控制文本格式和布局,提供了字符、單詞、行和段落間距調整、字距調整、文本對齊、鏈接、超過 30 種富文本標簽、多種字體和精靈支持、自定義樣式等功能。
強大的性能。由于 TextMeshPro 創(chuàng)建的幾何體與 Unity 的文本組件一樣,每個字符都使用兩個三角形,因此這種改進的視覺質量和靈活性不會帶來任何性能成本的損失。
2. TextMeshPro創(chuàng)建
a. 創(chuàng)建一個空節(jié)點(Create Empty),添加組件(Add Component),選擇Mesh->TextMeshPro-Text
b. 在彈出的對話框中點擊Import TMP Essentials,導入即可
c. 在Inspector中編輯相關屬性,如在TextMeshPro->Text Input中輸入“Hello”,即可在屏幕中顯示內容。
3. TextMeshPro腳本中調用
創(chuàng)建腳本文件(TextScript.cs),并關聯到當前的TextMeshPro中
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;public class TextScript : MonoBehaviour
{TextMeshPro Text;// Start is called before the first frame updatevoid Start(){Application.targetFrameRate = 60;Text = GetComponent<TextMeshPro>();//獲取組件}// Update is called once per framevoid Update(){Text.text = Time.time.ToString("f3");}
}
4. TextMeshPro字體設置及中文支持
以添加微軟雅黑字體為例
-
下載字體
微軟雅黑:https://github.com/CroesusSo/msyh/tree/main -
在Unity中創(chuàng)建文件夾用來存放字體,如創(chuàng)建
Assets/Fonts/ttf
文件夾,并把msyh.ttf復制到該文件夾內 -
打開 Font Asset Creator 窗口: Window > TextMeshPro > Font Asset Creator.
-
Font Asset Creator 窗口操作
- Source Font File: 選擇你剛才放到Unity里面的中文字體。
- Sampling Point Size / Font Size: 默認Auto Size
- Padding: 字體中效果 (outlines, glow, bevels, etc.) 的大小,默認為5。
- Packing Method: 創(chuàng)建字體的方式。Fast可用于快速預覽效果,Optimum用于創(chuàng)建最終字體。
- Atlas Resolution: 可以理解為分辨率。
- Character Set: 創(chuàng)建的字體的字符集合,也就是說你要創(chuàng)建的TextMeshPro字體中,要包含的所有字符。在我們這里就是所有的中文字符。一般來說常見中文字+英文單詞+符號即可。
下拉選擇Characters from File,然后選擇包含所有所需字符的txt文件(需要先導入Unity)。
txt文件下載地址:https://github.com/wy-luke/Unity-TextMeshPro-Chinese-Characters-Set
在簡單的項目中,可以采用Custom Characters,然后在Custom Character List中輸入項目中會用到的所有的字符即可
- 點擊Generate Font Atlas,生成Unity字體文件,同時save,保存到
Assets/Fonts/msyh SDF.asset
- 將之前創(chuàng)建的TextMeshPro節(jié)點的Font Asset設置為新創(chuàng)建的字體Assets/Fonts/msyh SDF.asset`即可
過程中出現的一些問題
- 生成字體過程中沒有將所有字符轉化,出現未轉換字符(如下圖)
解決辦法:將Atlas Resolution設置值變大,如改為2048x2048;
)