facebook twitter hatena line email

「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
 
==色変更==
 
<color=#F1F1F1>□</color>
 
  
 
==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のテキストを追加

  1. ヒエラルキーで右クリックで、UI/TextMeshProを追加
  2. Window/TextMeshPro/Import TMP Essential Resources
  3. (サンプルを使いたい場合)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
    }
}