「Unity/TMPro/Text」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→2DのTMProのテキストを追加) |
(→テキストの左右の余白を動的に設定する) |
||
(同じ利用者による、間の3版が非表示) | |||
行3: | 行3: | ||
#Window/TextMeshPro/Import TMP Essential Resources | #Window/TextMeshPro/Import TMP Essential Resources | ||
#(サンプルを使いたい場合)Window/TextMeshPro/Import TMP Example and Extras | #(サンプルを使いたい場合)Window/TextMeshPro/Import TMP Example and Extras | ||
− | |||
− | |||
− | |||
==2DのTMProのテキストをスクリプトで入れる(uGUI)== | ==2DのTMProのテキストをスクリプトで入れる(uGUI)== | ||
行29: | 行26: | ||
TextMeshPro textPro = GameObject.Find("Text (TMP)").GetComponent<TextMeshPro>(); | TextMeshPro textPro = GameObject.Find("Text (TMP)").GetComponent<TextMeshPro>(); | ||
textPro.text = "hoge"; | textPro.text = "hoge"; | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | ==色変更== | ||
+ | textPro.text = "<color=#F1F1F1>□</color>"; | ||
+ | |||
+ | ==テキストの左右の余白を動的に設定する== | ||
+ | テキストのRectTransformの"anchor presets"がstretch(その他のmiddleやcenterじゃない)のときで、左右の余白が、0のとき、左右の余白を、10に設定する | ||
+ | <pre> | ||
+ | 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 | ||
} | } | ||
} | } | ||
</pre> | </pre> |
2024年9月22日 (日) 01:11時点における最新版
目次
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 } }