我们可以声明一个泛型T,用来让每个继承这个类的都用这个T来表示
//where T 表示给T设置限制,class表示这是一个类,new代表能够创建对象,new必须放在最后一个
public class NormalSingleton<T> where T : class, new()
{
//静态字段
private static T _single;
//静态属性
public static T Single
{
get
{
//先判断字段是否赋值过,为不为空
if (_single == null)
{
//若为空 NEW一个对象
T t = new T();
//查看这个对象是否继承Monobehaviour,若继承过,则可以使用mono的单例进行继承
if (t is MonoBehaviour)
{
Debug.LogError(message: "Mono类请使用MonoSingleton");
}
//将这个对象给_single
_single = t;
}
//返还值
return _single;
}
}
}
在使用单例类的时候,字段必须声明为属性,只能通过方法或者属性的方法使用单例