有时候会很多地方用到单例类所以写一个工具单例类 很简单
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 单例类的模板类
/// </summary>
public class Singleton <T> where T: new()
{
protected static T instance = new T();
protected Singleton()
{
Debug.Assert(null == instance);
}
public static T Instance
{
get
{
return instance;
}
}
}
使用:
public class StorageTool : Singleton<StorageTool>
{
}
胖子哥加了个更吊逼的方法
public abstract class Singleton<T> where T : Singleton<T>, new()
{
protected static T ms_instance = default(T);
public static T Instance
{
get
{
if (ms_instance == null)
{
ms_instance = new T();
ms_instance.InitSingleton();
}
return ms_instance;
}
}
protected virtual void InitSingleton()
{
}
public void Initialize()
{
//do nothing, just initialize
}
public virtual void OnDestroy()
{
ms_instance = null;
}
}
大功告成 欢迎加群 184386599 共同学习谈论