見出し画像

Bolt で TextMesh Pro のテキストを書き換える~その1

Bolt で TextMesh Pro を使うメモ。

関連記事:

Boltのインストール:https://note.com/maruton/n/n95baa38ba5d2
TextMeshPro セットアップ:https://note.com/maruton/n/n0d81c7716b98
BoltにTextMesh Pro登録:https://note.com/maruton/n/n0c45d5d19b8e
TextMesh Pro の文字作成&設定:https://note.com/maruton/n/n941102c8e7e2



準備:uGUIにTextMesh Proのオブジェクトを作成

参考記事:https://note.com/maruton/n/n941102c8e7e2

ここでは以下のように uGUI の TextMeshProオブジェクト TextStatus を作成したものとします。

画像1


TextStatusオブジェクトはこんな感じです。

画像2


準備:Boltのコンポーネント作成

ここではシーンにEmplyオブジェクト Main を作成して、Boltコンポーネントを付けます。

オブジェクトMainを選択。

画像3


Add Component からFlowで検索して、コンポーネントFlow Machineを追加。

画像4


ここでは Macro で Flow Machine を作成。
保存先は慣例的に /Assets/Macros に保存。
(ファイル名: UpdateTextStatus)

画像5


uGUI用TextMesh Pro 書き換え用ノード

以下が uGUI用TextMesh Proの文字列を書き換えるシンプルなノード構成例。

画像7

この上図の例ではあらかじめ TextMeshPro のテキストを指す変数を作成しておきノードへ接続しています。

TextMeshProUGUI 型の変数を作成。
 上図では変数名 tmpuGui_TextStatus。

変数 tmpuGui_TextStatus へ手動で、オブジェクトTextStatus下のTextMeshPro の Textを指定。

この変数をノード TextMeshProUGUI に入力して書き換え先 Text を指定。さらに書き換える文字列を指定(string "12345678")しています。


以降で変数の作成手順、ノードの作成手順を説明します。


TextMeshProUGUI 型の変数を作成

変数名欄に tmpuGui_TextStatus を入力して追加。
※下図は Scene Variable への追加例。

画像7


変数の Type に TextMeshProUGUI を指定。

※BoltにTextMesh Proを登録していないと候補に出てこないので注意
→ 関連記事:https://note.com/maruton/n/n0c45d5d19b8e

画像8



変数の Value に TextMeshProUGUI コンポーネントが付いているオブジェクトを指定。

画像9


ノードの作成

TextMeshProUGUI を指す変数ノードの作成。
1)Flow Graph ウィンドウ上で、右クリック。
2)Search欄で「get variable」と入力。
  Get Scene Variable ノードを選択して配置。
3)変数名欄に tmpuGui_TextStatus を指定。

画像10


TextMeshProUGUI の Text を書き換えるノードの作成。
1)Flow Graph ウィンドウ上で、右クリック。
2)Search欄で「textmeshprougui」と入力。
  候補一覧から TextMeshProUGUI.SetText (text)  ノードを選択して配置。

画像12

※BoltにTextMesh Proを登録していないとノードの候補に出てこないので注意 → 関連記事:https://note.com/maruton/n/n0c45d5d19b8e


ノードの接続

以下のようにノードを接続。

画像7

stringノードを文字列変数に置き換えれば、任意の文字列を TextMeshProUGUI に表示できます。


例えば Scene Variable に スコアの値などを保存するようにしておき、他のBolt Graphでその値を更新したとします。
※Scene Variable はそのシーン内全てのBolt Graphでスコープがある。

上図の stringノード("12345678")の代わりに、スコアの値を取得してノード接続すればつなげば、TextMesh Pro uGUI のテキスト上にスコア表示ができるというしくみです。


サンプルのダウンロード

Git-Hubでサンプルプロジェクトを公開しています。




この記事が気に入ったらサポートをしてみませんか?