見出し画像

C#からBoltのノードを呼び出す

Bolt であらかじめ Custom Event ノードを作成しておくと、C#から呼び出すことができます。

※末尾にサンプルプロジェクトのダウンロードについて記載。

Custom Eventノードの作成

Bolt で Custom Event ノードを作成します。
Custom Eventノードは State Graph、Flow Gparh のいずれでも作成でき、呼び出すことができます。
※ちなみにBolt内からCustom Eventノードを呼ぶこともできます(Trigger Custom Event)。

ノード作成時の検索欄で、
Custom Event
と入力すれば候補がでてくるので選択して配置。

画像1

Arguments欄で引数の個数を指定。上図では引数を1つに設定。
下の文字列リテラル欄にはこの Custom Event を特定する為の名前を設定。上図では "OnFlow" という名前で設定(所謂関数名のようなもの)。

C#からは "OnFlow" を指定することで、このCustom Eventノードを特定して呼び出します。


C#から呼び出す

ソースの先頭に以下を追加します。

using Ludiq;
using Bolt;

前項で作成した Custom Eventノード名"OnFlow" を呼び出すには以下のように記述します。

CustomEvent.Trigger(target, "OnFlow",1); 

構文仕様的には以下のようになっています。
CustomEvent.Trigger(  GameObject target,  string name [, params object[] args [, ...] ])

target は 呼び出し先 Custom Event の Graph コンポーネントが付与されているオブジェクト。
name は Custome Eventで指定した名前。ここでは "OnFlow"。
3番目以降は引数の値。ここでは 数字の 1。
※Custom Event側のArgments指定値で引数の個数は変わります。



サンプルプロジェクト

GitHubで簡単なサンプルを公開しています。

開いたページに表示されている README.md を参考にセットアップして下さい。


今回気づいた点など

いままでBoltのインストールは、Tools > Install Bolt でインストールしていました。
今回のようにGithubからダウンロードしたプロジェクトでC#を併用しているとこのメニューがでなくなります。

BoltのNameスペースを記述したC#スクリプトが、Boltが無い為にエラーとなっており、その為BoltインストーラーのEditorスクリプトが動作していないようです。
同梱READMEでは以下のように書かれています。

To get started, import the package that matches your project's scripting runtime version (.NET 3 or 4).
If you're not sure, use [ Tools > Install Bolt ].
You can safely delete the "Bolt Install" folder after importing the package.

つまり手動で .net3用か.net4用の同梱パッケージをインポートすると先の問題は解消できます。


いいなと思ったら応援しよう!