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
と入力すれば候補がでてくるので選択して配置。
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用の同梱パッケージをインポートすると先の問題は解消できます。