# IStopReceiver

グラフが停止される際に呼び出すメソッドを実装できます。
関数グラフの場合は、親グラフの再生状況とは無関係に関数グラフ自体が停止された際に呼ばれる点にご注意ください。

## スクリプトの書き方

- `LogicToolkit.IStopReceiver`を各種NodeComponentを継承した型に実装する。
- `public void OnStop()`を実装する。

## コード例

     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
    30
    31
    32
    33
    34
    35
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using LogicToolkit;

    [System.Serializable]
    public class StopExample : ActionComponent, IStopReceiver
    {
        [SerializeField]
        private GameObject prefab;

        [SerializeField]
        private OutputDataPort<GameObject> output;

        private GameObject instance;

        protected override void OnAction()
        {
            if (instance == null)
            {
                instance = Object.Instantiate(prefab);
            }

            output.SetValue(instance);
        }

        public void OnStop()
        {
            if (instance != null)
            {
                Object.Destroy(instance);
                instance = null;
            }
        }
    }

この例では、実行時にプレハブを一度だけ実体化し、停止時に実体化したオブジェクトも破棄しています。