今回はVisual ScriptingのCustomEventの使い方について紹介します。
CustomEventとは
UnityのVisual ScriptingにおけるCustom Eventは、独自に定義したイベントを任意のタイミングで呼び出せる仕組みです。スクリプト間の通信や特定の処理をトリガーする際に役立ちます。
今回は、ボタンを押すことでオブジェクトの色を変更する仕組みを作成します。

このような構造でScriptGraphを制作します。

完成版のプロジェクトは以下からダウンロードできます:
準備
シーン上に以下のオブジェクトを配置してください:
- Cube(色が変わる対象のオブジェクト)
- Button × 2(「Red」と「Blue」のラベル付きボタン)
オブジェクトを適切に配置してください(サンプルと同じ配置を参考に)
ChangeColorRecieverの作成
1.Cubeに「Script Machine」コンポーネントを追加します。
2.新しいScript Graphを作成し、名前をChangeColorReceiverにします。
3.String型の変数「Change Red」「Change Blue」を作成します。

以下のようにノードを追加します。
- Custom Event: イベント名を設定し、String型の引数を受け取るようにします。
- Materialの取得: Cubeのマテリアルを取得します。
- 色の変更: 受け取った引数に応じてマテリアルの色を変更します。

ChangeBlueGraph、ChangeRedGraphの作成
1.各ボタンに「Script Machine」コンポーネントを追加します。
2.ボタンごとに以下のScript Graphを作成します:
- Red用: ChangeRedGraph
- Blue用: ChangeBlueGraph
3.GameObject型の変数「ChangeColorCube」を作成し、Cubeを割り当てます。


以下のようにノードを追加します。
On Button Click: ボタンがクリックされた際に処理を開始します。
Custom Eventの呼び出し:CustomEventノードに「ChangeColorRecieverの作成で作成したString型の変数名の「ChangeRed」と「ChangeBlue」をそれぞれ入力する(スペルは正確に入力する)。


実行

ボタンを押すことで、Cubeの色がそれぞれ「赤」または「青」に変わります。
まとめ
Custom Eventは、Visual Scriptingでスクリプト間の柔軟な通信を実現する便利な仕組みです。この仕組みを活用すれば、シンプルで管理しやすいイベント駆動型のシステムを構築できます。