EventComponent

EventComponentをC#スクリプトで記述できます。

作成方法

  1. Projectウィンドウの「+」ボタンをクリック。
  2. メニューからLogic Toolkit > Scripts > Event Component C# Scriptを選択。
  3. スクリプト名を入力し、Enterで決定。

スクリプトの書き方

  • LogicToolkit.EventComponentを継承したクラスを作成します。
  • 型にSystem.SerializableAttributeを適用します。
  • アクティブになった際にprotected override void OnActivated()が呼ばれます。
    主にイベントの購読の処理を行います。
  • 非アクティブになった際にprotected override void OnDeactivated()が呼ばれます。 主にイベントの購読解除の処理を行います。
  • 必要に応じてLogicToolkit.IUpdateReceiverを実装し、状況の判定などをvoid OnUpdate()で行います。
  • イベントが呼び出されたと判断した際はOnEvent()を呼び出します。

コード例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using LogicToolkit;

[System.Serializable]
public class EventExample : EventComponent
{
    // OnActivated is called when activated.
    protected override void OnActivated()
    {
        // Subscribe to some event and call OnEvent() from your callback.
        Application.focusChanged += OnFocusChanged;
    }

    void OnFocusChanged(bool focus)
    {
        Debug.Log(focus);
        OnEvent();
    }

    // OnDeactivated is called when it is deactivated.
    protected override void OnDeactivated()
    {
        // Unsubscribe from some event
        Application.focusChanged -= OnFocusChanged;
    }
}

この例では、アプリケーションのフォーカスが切り替わった際にフォーカスの有無をConsoleに出力しながらイベントが来たことをノードに通知します。
UnityEditor上でテストプレイする際は、Gameウィンドウと他のウィンドウを交互にクリックしてフォーカスを切り替えるなどで確認してください。

なお、スクリプトの生成でApplication.focusChangedを選択することで同様のスクリプトを作成可能です。