【Unity】VisualScriptingチュートリアル4
第4回
概要
前回と同じく
こちらの動画を参考としたチュートリアルコードを書いていきます
前準備
前回はキューブオブジェクトを動かし、カプセルオブジェクトに接触した際に頭上のオブジェクトのアクティブ/非アクティブを切り替えるVisualScriptを記述しました
今回は「カプセルオブジェクトに接触した際に画面にテキストメッセージを表示する」をやっていこうと思います
メッセージウィンドウのように配置
配置した TextMeshPro
では日本語に対応したフォントを取り付ける必要があります
今回は 以下のサイト様のフォントを使用することにしました
画面下部のダウンロードからフォントをダウンロードし、中にあるいずれかの xx.ttf ファイルをUnityに配置→読み込ませる
Window > TextMeshPro > Font Asset Creator
からフォントアトラスを生成する
RenderModeはSDFAAで CharacterSetはCustomCharactersで Generate Font Atlas > 保存
生成したフォントアセットの GenerationSettings
を開いて AtlasPopulationMode
をDynamicに,そして ClearDyanmicData
にチェックを入れておきましょう
Staticのままではパフォーマンスが良いが使用する文字を自分で登録しなければならないので面倒くさい。
Dynamicの場合は実行中にフォントテクスチャを生成してくれるので楽
これでTextMeshProに作成したフォントを取り付けると日本語が表示できるようになったと思います
ScriptMachineを取り付ける
MessageBoxにScriptMachineコンポーネントを取り付けます。
今回は条件がいらないのでScriptMachine。
ScriptMachine上からテキストを書き換えるために TextMeshPro のオブジェクトをScriptMachineに教える必要があります
なので Variables
コンポーネントに Messageという名前で TextMeshPro を登録しておきます
Editor Graph
を押して実際にテキストを配置していきます。
しかし、このまま 右クリック > Add Node
から TextMeshPro
を探しても出てきません
VisualScriptingに登録されていないコンポーネントを使用するためには、TextMeshPro
コンポーネントをVisualScriptingに登録する必要があります
Edit > ProjectSettings > Visual Scripting
を開いて Node Library > +ボタン
で TextMeshPro の DLL を登録。
次に Type Options > +ボタン
で TextMeshPro UGUI を登録
TextMeshProのDLLをまずは登録して、その中にある TextMeshPro UGUI を登録します。
これで下にある Regenerate Nodes
を押すと VisualScriptingでTextMeshProが使用できるようになります
TextMeshProのテキストを設定するのに必要なのは TExtMeshProUGUI
の SetText
ユニット
全体図はこんな感じ
- OnStart と SetTextをつなげる
- GetVariable の Object から Vairables に登録した Message を取得
- MessageとSetTextをつなげる
- String ユニットを貼り付けて表示したいテキストを入力してSetTextと結びつける
以上で、実行するとVisualScriptingに配置したテキストがデフォルトで登録されてあってテキストを書き換えて表示されます
条件を入れていないため起動時に速攻書き換えて終わり。