【Unity】VisualScripting Events unit について 2
はじめに
これの続き
Event Unit についてのまとめ
Animation Events
アニメーションに付けたイベントトリガーを検知します
試しに実装してみます
以下のようにCubeがスケールするアニメーションを作成して
半分の値のところにアニメーショントリガーを仕込みます
インスペクタから TriggerAnimationEvent
を選択します
今回は以下ようにパラメータを指定
これでグラフ上からアニメーションイベントを参照できるようになりました。
起動したら速攻アニメーションするように以下のようにEntryから直つなげしています
ユニット
アニメーションユニットは二種類あり Events > Animation
- AnimationEvent
- Named AnimationEvent
名前を入れる欄があるユニットは、同じ文字列を持つアニメーションイベントのみを受け入れます
まずは名前がいらない方でテストしてみます。
これで起動することでログが表示されます。
イベントが有るたびに起きるようにしているので、アニメーションイベントを2つ配置した場合
2回ログを出す処理が走ります
Named Animation Event
イベントの区別をするために名前指定の Named Animation Event を使用します。
2つ目のアニメーショントリガーのstringに指定した「イベント2」という文字列を入れて
実行すると
「イベント2」という文字列を入力したイベントトリガーのみにこのユニットが反応します
Named Animation Event は入力で文字列を受け取れるようになっているので条件によってフィルター名を変えることもできそうです
Event API
以下のような Custom Event (名前は TestEvent としてる)をグラフに配置して
スクリプト側からトリガーを叩いてみます
適当にスクリプトを作成して上記のグラフがついているGameObjectにアタッチします
using UnityEngine; using Unity.VisualScripting; public class CustomEventTriggerTest : MonoBehaviour { void Start() { // 第一引数はVisualScriptがあるGameObject CustomEvent.Trigger(gameObject, "TestEvent", "スクリプトから呼び出した"); } }
VisualScriptingのメソッド群は Unity.VisualScripting 内にあります。
実行すると呼び出されます
終わり
今回はアニメーションイベントとスクリプト側のトリガーの紹介をしました
VisualScriptingを見ていくにつれて、完全にVisualScriptingでゲームをつくるというよりスクリプトとのハイブリットで書く使い方が良いように思えます