ServiceComponent

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

作成方法

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

スクリプトの書き方

  • LogicToolkit.ServiceComponentを継承したクラスを作成します。
  • 型にSystem.SerializableAttributeを適用します。
  • アクティブになった際にprotected override void OnActivated()が呼ばれます。
  • 非アクティブになった際にprotected override void OnDeactivated()が呼ばれます。
  • 必要に応じてLogicToolkit.IUpdateReceiverを実装し、毎フレームの更新処理などをvoid OnUpdate()で行います。

コード例

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

[System.Serializable]
public class ServiceExample : ServiceComponent
{
    private float tempTimeScale;

    // OnActivated is called when activated.
    protected override void OnActivated()
    {
        tempTimeScale = Time.timeScale;
        Time.timeScale = 0f;
    }
    
    // OnDeactivated is called when it is deactivated.
    protected override void OnDeactivated()
    {
        Time.timeScale = tempTimeScale;
    }
}

この例では、StateやBehaviorTreeNodeにこのスクリプトを使用するとノードがアクティブの間はゲームの時間進行が停止します。