はじめに
UnityでTextMeshProを作成するとき
3D Object→Text TextMeshPro
UI→Text TextMeshPro
の二種類あって、スクリプト上から色を変更したいときの方法がそれぞれ違うっぽいのでメモ。
サンプルコードはTextMeshProのオブジェクトにアタッチして使うやつ。
3D Objectから作成したものにアタッチする時のコード
Example.cs
using TMPro;
using UnityEngine;
public class Example : MonoBehaviour
{
void Start()
{
//コンポ取得
TextMeshPro textmeshPro = GetComponent<TextMeshPro>();
// 現在のカラーを取得
Color currentColor = textmeshPro.color;
// 新しいアルファ値を設定
currentColor.a = 0.5f; // 例として0.5fに設定
// 設定した新しいカラーを適用
textmeshPro.color = currentColor;
}
UIから作成したものにアタッチする時のコード
Example2.cs
using TMPro;
using UnityEngine;
public class Example2 : MonoBehaviour
{
private void Start()
{
// コンポ取得
TextMeshProUGUI textMeshPro = GetComponent<TextMeshProUGUI>();
// 現在のカラーを取得
Color currentColor = textMeshPro.color;
// 新しいアルファ値を設定
currentColor.a = 0.5f; // 例として0.5fに設定
// 設定した新しいカラーを適用
textMeshPro.color = currentColor;
}
}
まとめ
「3D Object」から作ったTextMeshProは
GetComponent<TextMeshPro>();
「UI」から作ったTextMeshProは
GetComponent<TextMeshProUGUI>();
ってことみたい。