我常用的两个单例模式写法 (继承Mono和不继承Mono的)
不继承Mono
不继承Mono代表不用挂载到场景物体上面,因此直接饿汉式 加 合并空运算符判空创建实例
=>(lambda表达式)的意思是get,就是将instance赋给Instance属性
//单例
private static JsonDataManager instance =new JsonDataManager();
public static JsonDataManager Instance=>instance??( new JsonDataManager());//a??b a为空则返回b,否则返回a
继承Mono
继承Mono代表需要挂载到场景中,因此被挂载的物品就相当于该脚本的对象,所以要到awake里面为instance赋值
其实如下写法按理来讲是可能出现问题的,但是我目前没有遇到过,因为我严格将该脚本挂载到场景对象之中
private static JsonDataManager instance = new JsonDataManager();
public static JsonDataManager Instance=>instance;
private void Awake() {
if(instance == null)
instance = this;
else
Destroy(gameObject);
}
规范写法如下:
Unity :单例模式 + MonoBehaviour 是什么体验?-CSDN博客
原文地址:https://blog.csdn.net/2301_77947509/article/details/142918074
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!