Unity/TMPro/Text
提供: 初心者エンジニアの簡易メモ
目次
2DのTMProのテキストを追加
- ヒエラルキーで右クリックで、UI/TextMeshProを追加
- Window/TextMeshPro/Import TMP Essential Resources
- (サンプルを使いたい場合)Window/TextMeshPro/Import TMP Example and Extras
2DのTMProのテキストをスクリプトで入れる(uGUI)
using TMPro;
public class SampleScene : MonoBehaviour
{
void Start()
{
TextMeshProUGUI textPro = GameObject.Find("Text (TMP)").GetComponent<TextMeshProUGUI>();
textPro.text = "hoge";
}
}
2DのTMProのテキストをスクリプトで入れる(通常)
using TMPro;
public class SampleScene : MonoBehaviour
{
void Start()
{
TextMeshPro textPro = GameObject.Find("Text (TMP)").GetComponent<TextMeshPro>();
textPro.text = "hoge";
}
}
色変更
textPro.text = "<color=#F1F1F1>□</color>";
テキストの左右の余白を動的に設定する
テキストのRectTransformの"anchor presets"がstretch(その他のmiddleやcenterじゃない)のときで、左右の余白が、0のとき、左右の余白を、10に設定する
TextMeshProUGUI textMesh = transform.GetComponent<TextMeshProUGUI>();
if (textMesh != null)
{
RectTransform rectTransform = transform.GetComponent<RectTransform>();
bool isCenterOrMiddle = (rectTransform.anchorMin.x == 0.5f && rectTransform.anchorMax.x == 0.5f) ||
(rectTransform.anchorMin.y == 0.5f && rectTransform.anchorMax.y == 0.5f);
// ancher presentが、centerやmiddleのものを除外
if (isCenterOrMiddle)
{
continue;
}
// 左右のmarginが0のものについて、marginを10ずつ設定
if (rectTransform.offsetMin.x == 0 && rectTransform.offsetMax.x == 0)
{
// 左と右のオフセットを設定
rectTransform.offsetMin = new Vector2(10, rectTransform.offsetMin.y); // left
rectTransform.offsetMax = new Vector2(-10, rectTransform.offsetMax.y); // right
}
}
