您的位置:首页 > 移动开发 > Unity3D

学习了Unity单例

2017-02-22 23:10 169 查看
一直觉得自己了解单例,可是看到下面这种 不觉得别人的设计模式就是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 ();

这里记下笔记
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: