目次

060 シングルトンクラスの自動生成

概要

059 シングルトンクラスについてのSingletonクラスを SYSTEM_INSTANCES変数の中に記述するだけで起動時にそれらを自動生成します。

ソースコード

using UnityEngine;
using System;
 
//=====================================================================================
// class SystemInstance
//=====================================================================================
public class SystemInstance : Singleton<SystemInstance>
{
    //=====================================================================================
    // constant
    //=====================================================================================
    // シングルトンクラスを宣言します。
    private static Type[] SYSTEM_INSTANCES =
    {
    	typeof( Fader ),
    };
 
    //-------------------------------------------------------------------------------------
    // Initialize
    //-------------------------------------------------------------------------------------
    protected override void Initialize()
    {
        Debug.Log( "Instantiate Systems." );
 
		int num = SYSTEM_INSTANCES.Length;
        for( int i=0; i < num; ++i )
        {
        	Type class_type = SYSTEM_INSTANCES[ i ];
 
            var obj = new GameObject();
            obj.transform.parent    = this.transform;
            obj.transform.name      = class_type.Name;
            obj.AddComponent( class_type );
        }
    }
}

複数種類のシングルトンクラスが存在していても、 このクラスを一つだけGameObjectにアタッチしておけば良い様になります。 シングルトンクラス管理用のシングルトンクラスって感じです。便利。

参考:Post Position 【Unity】 各シングルトンクラスを起動時に自動生成するスクリプト