Custom Trigger は、具体的な action の定義に名前を付け、 それを別途に定義されるトリガー契機に外部から実行するための機構。 プログラムで関数定義(ないしはメソッド定義)の役割に近いもの。
- API ドキュメントを見るよりもサンプルを見た方が、おそらく分かりやすい
- SDK 同梱のシーン Assets/VRCSDK/Examples/Scenes/Example-Actions.unity の中の Action-ActivateCustomTrigger の所を参照
- API
- trigger:(定義して呼ばれる方) https://docs.vrchat.com/docs/custom
- action:(それを呼ぶ方) https://docs.vrchat.com/docs/activatecustomtrigger
- 呼ばれる方の設定
-
VRC_Trigger
コンポーネントを追加 - それに
Custom
trigger を追加 - この定義の名前を自由に付ける
- 実行する action を設定する
-
- 呼ぶ方の設定
- 呼び出す契機となる何らかの trigger の action として
ActivateCustomTrigger
を追加 - そのレシーバーとして、上記で定義した(呼ばれる方の)オブジェクトを選択
- Name 欄に定義した Custom trigger の名前が出てくるので選択
- 呼び出す契機となる何らかの trigger の action として
- 補足
ActivateCustomTrigger
を連鎖させることで複数のオブジェクトに定義された action を同時に実行することが可能- サブルーチン的な構成の仕方ができる(はず。引数を渡せないので限定的ではある。)
- 呼び出す先のオブジェクトの有効状態(active)、コンポーネントの有効状態(enabled)の影響は受けずに動作する(ようだ)
- (意図しない動作、不具合のように思えるが、はたして)
- あるトリガーに対して、Custom trigger を発動しなおすことでアクションを実行する broadcast type を(実質的に)変更することが出来る。