送信ありがとうございます。確認できました。
AdvEngineのイベントのタイミングに起因する問題のようでした。
AdvEngineのイベントは、基本的にはまだUIへの値の変更がされていないタイミングです。
おおざっぱには、
AdvEngineの更新 → 各種イベントの発行 → 「UIの更新」という流れになります。
なので、イベントが呼ばれたときにUIの内容を取得(テキスト内容の判別など)をしようとしても、まだUIが更新されていないので前の状態のままになっているという理屈です。
キャラクター名等は、AdvePageから取得するようにしてください。
以下、サンプルコードです。
引数が(AdvPage page)と変えてあるので、インスペクター上のイベントの設定をし直してください。
public class NameTextColor : MonoBehaviour
{
public TextMeshProUGUI NameText;
public void ChangeNameTextColor(AdvPage page)
{
var nameText = page.NameText;
Color color = new Color(1.0f, 1.0f, 1.0f, 1.0f);
switch (nameText)
{
case "うたこ":
color = new Color(1.0f, 0.0f, 0.0f, 1.0f);
break;
case "ロボ子":
color = new Color(0.0f, 1.0f, 0.0f, 1.0f);
break;
case "ラン":
color = new Color(0.0f, 0.0f, 1.0f, 1.0f);
break;
}
NameText.color = color;
}
}
2024年5月9日木曜日 16:02:32 UTC+9 nunu: