1.普通单例
public class PanalCtrl : MonoBehaviour {
private static PanalCtrl _instance;
public static PanalCtrl Instance
{
get{
if (_instance == null) {
GameObject go = new GameObject ();
_instance = go.AddComponent <PanalCtrl> ();
}
return _instance;
}
}
void Awake()
{
_instance = this;
}
}
2. DontDestroyOnLoad 时防止重复
public class PanalCtrl : MonoBehaviour {
private static PanalCtrl _instance;
public static PanalCtrl Instance
{
get{
if (_instance == null) {
GameObject go = new GameObject ();
_instance = go.AddComponent <PanalCtrl> ();
}
return _instance;
}
}
void Awake()
{
if (_instance != null) {
Destroy (_instance.gameObject);
}
_instance = this;
}
}
3.饿汉模式
public class PanalCtrl : MonoBehaviour {
private static PanalCtrl _instance = null; //先不初始化
public static PanalCtrl Instance ()
{
if (_instance == null) {
_instance = new PanalCtrl ();
}
return _instance;
}
private PanalCtrl()//私有构造函数
{
}
void Awake()
{
}
}
上面是我个人目前有用到的,个人水平不高有错误欢迎指正,谢谢~。
有看到有些大神写的单例模式,然我佩服!哈哈。。下面是链接........
http://blog.csdn.net/candycat1992/article/details/10960731