使用时继承该单例类,不用管什么多线程之类的问题,也不用担心性能问题,因为在最开始的时候不管你要不要这个实例,都会被创建出来,所以只是在程序开始的时候消耗时间,到程序结束前不会销毁。
第一个是不继承MonoBehaviour
public class SingletonNull<T> where T : new()
{
private static T m_instance;
public static T Instance
{
get
{
if (m_instance == null)
{
m_instance = new T();
}
return m_instance;
}
}
}
第二个是继承MonoBehaviour
using UnityEngine;
public class SingletonMono<T> : MonoBehaviour where T : SingletonMono<T>
{
public bool Global = true;
private static T m_instance = default;
public static T Instance {
get
{
if (m_instance == null)
{
m_instance = FindObjectOfType<T>();
}
retur