# カスタムイベント

カスタムイベントは他のグラフのイベントを呼び出すための機能です。

## ワークフロー

### 定義

カスタムイベントを使用するには、まずカスタムイベントを定義します。
カスタムイベントの定義データを基に、イベントの受け取りと呼び出しが行えるようになります。
定義データには受け渡すパラメータの設定も行えます。

### 受け取り

次に、カスタムイベントの定義を紐づけた`Receive Event Component`を使用して、イベントを受け取ります。
カスタムイベントの定義にパラメータが含まれている場合は、呼び出し時に受け渡したパラメータの値を出力できます。

### 呼び出し

カスタムイベントを呼び出すには、`Invoke Event Action`を使用します。
カスタムイベントの定義にパラメータが含まれている場合は、呼び出し時に受け渡したいパラメータの値を入力できます。

## 定義できるオブジェクト

### Logic Controller

Logic BehaviorやLogic AssetなどのLogic Controllerを内包するオブジェクトに、直接カスタムイベントを定義できます。
また、Event Interface Assetを関連付けることでグラフオブジェクトに依存しない汎用的なイベントの受け取りができるようになります。

詳細はLogic Controllerを参照してください。

### Event Interface Asset

Event Interface Assetはカスタムイベントの定義のみを設定できるアセットです。
このアセットを介して、固有のグラフオブジェクトの定義に依存しない汎用的なイベントの呼び出しが可能です。
Logic Controllerへ関連付けることでイベントの受け取りができるようになります。

詳細はEvent Interface Assetを参照してください。

## 使用方法

### カスタムイベントの定義

Logic EditorウィンドウのEventsタブや各オブジェクトのInspectorウィンドウで設定できます。

1. Event Definitionsの「+」ボタンをクリック。
2. 名前を入力し、`Enterキー`で確定。

### パラメータの定義

イベントを呼び出す際に受け渡すパラメータを定義します。

1. パラメータリストの「+」ボタンをクリック。
2. 名前を入力して`Enterキー`で確定。
3. 型のドロップダウンをクリック。
4. 型選択メニューから受け渡したい型を選択。

### Event Interface Assetの関連付け

Logic EditorウィンドウのEventsタブや各オブジェクトのInspectorウィンドウで設定できます。

1. Event Interfacesの「+」ボタンをクリック。
2. メニューから関連付けたいEvent Interface Assetを選択。
   また、メニューから <Create> を選択することで、Event Interface Assetを新規作成できます。

### カスタムイベントの受け取り

事前に、自グラフオブジェクトにカスタムイベントを定義する必要があります。

ノード作成メニュー

1. グラフ上で`Spaceキー`を押しノード作成メニューを開く。
2. Scriptsタブを選択。
3. 検索欄に`Receive Events`と入力。
4. メニューから イベント名 (ノードの種類) を選択。
5. ノード名を入力し、`Enterキー`で確定。

ドラッグ＆ドロップ

1. Eventsタブのカスタムイベントの定義をドラッグ＆ドロップし、ノード作成メニューを開く。
2. メニューから Receive Event (ノードの種類) を選択。
3. ノード名を入力し、`Enterキー`で確定。

### カスタムイベントの呼び出し

事前に、呼び出し可能なカスタムイベントを定義する必要があります。

ノード作成メニュー

1. グラフ上で`Spaceキー`を押しノード作成メニューを開く。
2. Scriptsタブを選択。
3. 検索欄に`Invoke Events`と入力。
4. メニューから イベント名 (ノードの種類) を選択。
5. ノード名を入力し、`Enterキー`で確定。

ドラッグ＆ドロップ

1. Logic Editorウィンドウ右上のロックアイコンをクリックして選択オブジェクトをロックする。
2. 呼び出したいオブジェクトを選択する。
3. Inspectorウィンドウのカスタムイベントの定義をドラッグ＆ドロップし、ノード作成メニューを開く。
4. メニューから Invoke Event (ノードの種類) を選択。
5. ノード名を入力し、`Enterキー`で確定。
6. 必要に応じてLogic Editorウィンドウのロックを解除する。