コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】簡単に使用できるオブジェクトプール「RecyclerKit」紹介

はじめに

「RecyclerKit」は簡単に使用できるオブジェクトプールです

使い方

f:id:baba_s:20180115204922p:plain

シーンのオブジェクトに「Trash Man」コンポーネントをアタッチして
「Drop a Prefab ~」と記載されている箇所に
オブジェクトプールで管理したいプレハブかシーンのオブジェクトをドラッグします

そして、下記のようなスクリプトを記述して使用します

using UnityEngine;

public class Cube : MonoBehaviour
{
    public GameObject cubePrefab;

    private GameObject cube;

    private void Start()
    {
        var bin = TrashMan.recycleBinForGameObject( cubePrefab );

        // オブジェクトが生成された時に呼び出される
        bin.onSpawnedEvent += go => Debug.Log( "生成:" + go.name );

        // オブジェクトが破棄された時に呼び出される
        bin.onDespawnedEvent += go => Debug.Log( "破棄:" + go.name );
    }

    private void Update()
    {
        if ( Input.GetKeyDown( KeyCode.Z ) )
        {
            // 指定されたプレハブからオブジェクトを生成
            cube = TrashMan.spawn( cubePrefab );
        }
        if ( Input.GetKeyDown( KeyCode.X ) )
        {
            // 指定されたオブジェクトを破棄
            TrashMan.despawn( cube );
        }
        if ( Input.GetKeyDown( KeyCode.C ) )
        {
            // 指定されたオブジェクトを1秒後に破棄
            TrashMan.despawnAfterDelay( cube, 1 );
        }
    }
}

関連記事