BZ易风

导航

 

单例

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

/// <summary>
/// 自动挂载物体上
/// </summary>
public class AutoMonoSingle<T> : MonoBehaviour where T:Component
{
    private static T instance;

    public static T Instance
    {
        get
        {
            //第一次访问,判断instance变量为null时,将AutoMonoSingle自动挂在游戏物体上
            if (instance == null)
            {
                //创建一个空物体, 将类名作为游戏物体的名字
                GameObject obj = new GameObject(typeof(T).ToString());
                //在obj添加组件
                instance = obj.AddComponent<T>();

                //将obj这个物体放在一个永不被销毁的场景中
                DontDestroyOnLoad(obj);
            }
            return instance;
        }
    }

}

 

posted on 2021-01-16 22:17  BZ易风  阅读(86)  评论(0编辑  收藏  举报