一直觉得自己了解单例,可是看到下面这种 不觉得别人的设计模式就是6,
先来看代码
using UnityEngine;
using System.Collections;
//一个继承了MonoBehaviour的泛型类
public class Singleton : MonoBehaviour where T: class {
//下面几行代码应该比较熟悉
private static T instance = null;
public static T Instance {
get {
if (instance == null)
//这行就是利用泛型来讲制定类型脚本挂在物体上
instance = SingletonManager.Go.AddComponent (typeof(T)) as T;
return instance;
}
}
public static void Instantiate () {
instance = Instance;
}
public Singleton () {
instance = this as T;
}
}
//一个单例的管理类
public class SingletonManager {
private static GameObject go = null;
public static GameObject Go {
get {
if (go == null) {
go = new GameObject ("Singleton");
Object.DontDestroyOnLoad (go);
}
return go;
}
}
}
下面具体来看个继承的类(我觉得贴代码就行了 都不用解释 )
public class AudioPlayer : Singleton {
….
}
若要将它单利 在多个场景中只有一个 就可以
直接
AudioPlayer.Instantiate ();
这里记下笔记