docs.unity3d.com
    目次を表示する/隠す

    Event ノード

    Note

    バージョン 2019/2020 LTS を使用している場合は Unity Asset Store から Visual Scripting パッケージをダウンロードしてください。

    スクリプティングノードはイベントをリッスンします。これは全てのスクリプトの開始点であり、グラフ内で特殊な緑色のノードとして表示されます。

    イベントには多くの種類があり、ルートの Events カテゴリ (fuzzy finder > Events) の下のサブカテゴリ内にグループ化されています。

    2 つの単純で一般的なイベントは Start と Update で、これらは両方とも Lifecycle の下にあります。

    • Start は、グラフあるいはイベントハンドラーが初めて作成された時に 1 回飛び出されます。
    • Update は、グラフあるいはイベントハンドラーがアクティブな時にフレーム毎に呼び出されます。

    新しい Script Machine (スクリプトマシン) は、デフォルトで、この 2 つの両方のイベントから開始されます。

    入力 (Input) と 出力 (Output)

    全てのイベントは、トリガーされた時にスクリプトを開始させる Trigger 制御出力を 1 つ持っています。

    値入力は、イベントがトリガーされるタイミングに影響するオプションです。例えば、一部のイベントには、それをリッスンするオブジェクトを指定する Target 設定があります。ほとんどの場合、この設定はデフォルト値の Self のままにします。

    イベントの値出力は、そのイベントから渡される引数で、実際に起きた事に関する情報を提供します。例えばこの On Trigger Enter イベントの場合、衝突に関与したもう片方のコライダーが 1 つの出力になります。

    Custom Event

    Custom Event は特殊なタイプのイベントで、複数のグラフでカスタムイベントとそのカスタム引数をトリガーします。

    例えば、キャラクターの体力を減らすために呼び出される On Damage というカスタムイベントを作成する場合、このイベントは、与えるダメージの量を示す整数引数を 1 つ持っている必要があります。(Events の下にある) Custom Event ノードを作成することでイベントをリッスンします。名前を On Damage にします。名前の下で、引数カウントを 1 に設定します。

    Note

    インデックスはゼロから開始されるので、最初の引数のラベルは Arg. 0 になります。

    イベントを他の場所からトリガーするには、ファジーファインダー内で Custom Event ノードのすぐ下にある Trigger Custom Event ノードを使用します。イベント名は、大文字と小文字を区別しスペースを認識するので、正確に入力してください。

    例えば、プレイヤーに命中することのできる石の Script Machine (スクリプトマシン) を作成する場合、衝撃力をダメージとして使用します。

    石とともに衝突するコライダーがトリガーのターゲットです。On Damage イベントは、そのコライダーに添付された全てのマシンでトリガーされます。ダメージの値を使用してレシーバーオブジェクトから体力を減算します。

    カスタムイベントはレシーバーを必要とせず、それを処理するリスナーがなくてもエラーを発生させません。

    Animation Event

    アニメーションイベントを使用して、アニメーション内の特定の時点に達した時に Bolt グラフをトリガーできます。マシンとアニメーターを持つオブジェクトを選択してください。次に、Animation ウィンドウからアニメーションイベントを追加します。

    イベントが選択された状態で、Inspector から関数として TriggerAnimationEvent を選択してください。

    Inspector から任意のパラメーターを使用してください。

    Script Graph (スクリプトグラフ) 内に、(Events >Animation の下にある) Animation Event ノードを追加します。

    イベントには以下の 2 つのタイプがあります。

    • グローバルアニメーションイベント
    • 名前付きアニメーションイベント

    この 2 つの違いは、前者がオブジェクト上の全てのアニメーションイベントをリッスンして文字列パラメーターを返すのに対し、後者のトリガーは指定された名前入力と等しい文字列パラメーターである点です。

    Unity Event

    Unity Event は、Inspector から設定されたイベントをトリガーします。これはボタンなどの GUI 要素内によく見られますが、カスタムスクリプトからも作成可能です。

    設定を行うには、マシンを持つオブジェクトを選択し、Trigger Unity Event メソッドを選択します。文字列フィールド内にグラフ内でリッスンするイベント名を入力し、グラフ内に同じ名前の UnityEvent ノードを追加します。

    追加的な引数は Unity イベントではサポートされていません。

    Events API

    Visual Scripting は、C# スクリプトからカスタムイベントをトリガーする簡単な API を提供しています。

    API にアクセスする C# スクリプトに以下の using を追加してください。

    using Unity.VisualScripting
    

    Triggering API

    カスタムイベントをトリガーするには 1 回のイベント呼び出しが必要です。引数を必要な数だけ渡してください。

    CustomEvent.Trigger(targetGameObject, argument1, argument2, ...)
    

    例えば、このカスタムイベントノードは、

    このコードでトリガーできます。

    CustomEvent.Trigger(enemy, "Damage", 30);
    
    トップに戻る
    Copyright © 2023 Unity Technologies — 商標と利用規約
    • 法律関連
    • プライバシーポリシー
    • クッキー
    • 私の個人情報を販売または共有しない
    • Your Privacy Choices (Cookie Settings)