单例模式(Singleton Pattern)是最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象unity单例模式,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问3D场景,不需要实例化该类的对象。
注意:
C#中的单例模式
懒汉单例:
public class DanLi : MonoBehaviour {
//懒汉单例
private DanLi() { } //私有构造函数
private static DanLi instance = null;//私有静态类对象
public static DanLi Instance()//公共静态返回值为自身类的方法
{
if (instance == null)
{
instance = new DanLi();
}
return instance;
}
}
优点:第一次调用才会初始化,避免内存浪费
缺点:在不加锁的情况下,不能在多线程下运行
饿汉单例:
public class DanLi : MonoBehaviour {
//饿汉单例
private static DanLi instance = new DanLi();//创建私有静态类对象
private DanLi() { }//私有构造函数
public static DanLi Instance()//公共静态返回值是自身类的方法
{
return instance;
}
}
优点:因为一开始就实例化对象,所以无须考虑多个线程同时访问的问题,可以确保实例的唯一性;从调用速度和反应时间角度来讲unity单例模式,由于单例对象一开始就得以创建,因此要优于懒汉式单例。
缺点:由于饿汉模式下回优先实例化对象像素游戏素材,只要系统运行时加载了该类,相比于懒汉单例就会多占用一些资源。
Unity中的单例模式:
public class DanLi : MonoBehaviour {
public static DanLi instance;
void Awake()
{
instance = this;
}
}
文章来源:https://blog.csdn.net/qq_59823973/article/details/122991240