既読テキストと、選択ずみの選択肢のテキスト色を変更する
投稿日:2016年2月17日 | 最終更新日:2024年5月26日
既に読んだことがあるテキストや選択済みの選択肢であった場合に、表示するテキストの色を変えて表示するように設定することができます。
既読テキストのテキストの色を変える
Read Color ModeをChangeに。Read Colorで既読テキストの色を設定。
選択済みの選択肢のテキストの色を変える
Selected Color ModeをChangeに。Selected Colorで選択済みの選択肢のテキストの色を設定。
名前テキストは色替えをしない
Version3.11.1から、ReadColorModeに「Change Not Name Text」という、「既読済みで色を変えるが、NameTextは変更しない」というのを追加しました。
これを使うことで、名前テキストは既読カラー処理に影響されなくなります。
名前テキストの色をプログラムから制御
「OnPostChangeText」は、メッセージウィンドウ内のテキストの変更処理が終わった後に呼ばれるイベントです。
OnPostChangeTextは、名前が変わっていなくてもテキストに変更があったら呼ばれてしまいますが、
これを使えば、AdvUguiMessageWindowを継承しなくても、キャラクターによって名前テキストの色を変えられるようになります。
変えたいキャラと色の組み合わせを記述した下記のようなメソッドを持つコンポーネントを自作し、OnPostChangeTextにイベントを登録してみてください。
拡張すればさらに、キャラクターごとの既読カラーなども独自に設定できるようになります。
public void OnPostChangeText(AdvMessageWindow window)
{
switch (window.CharacterLabel)
{
case "キャラクターその1":
nameText.color = Color.red;
break;
case "キャラクターその2":
nameText.color = Color.blue;
break;
default:
nameText.color = Color.white;
break;
}
}
注意点
・カラータグなどを使って色を変更していた場合は、そちらの色が優先され、そのテキストの色は変化しません。
・「選択済みの選択肢」に関してはSelectionコマンドの「選択肢のテキスト」と「ジャンプ先のシナリオラベル」が両方とも同じであったら、違う場所で使っている選択肢であっても同じ選択肢として扱われます。
・既読情報は、システムセーブデータにセーブされるので、違うセーブデータの既読情報も反映されます。