不继承Mono
不继承Mono代表不用挂载到场景物体上面,因此直接饿汉式 加 合并空运算符判空创建实例
=>(lambda表达式)的意思是get,就是将instance赋给Instance属性
cs
//单例
private static JsonDataManager instance =new JsonDataManager();
public static JsonDataManager Instance=>instance??( new JsonDataManager());//a??b a为空则返回b,否则返回a
继承Mono
继承Mono代表需要挂载到场景中,因此被挂载的物品就相当于该脚本的对象,所以要到awake里面为instance赋值
其实如下写法按理来讲是可能出现问题的,但是我目前没有遇到过,因为我严格将该脚本挂载到场景对象之中
cs
private static JsonDataManager instance = new JsonDataManager();
public static JsonDataManager Instance=>instance;
private void Awake() {
if(instance == null)
instance = this;
else
Destroy(gameObject);
}