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

Unity3D - 单例模式和静态类模板

2017-12-28 09:18 197 查看
单例模式我相信是所有设计模式之中运用最广泛的设计模式之一。

今天我们就来看看在unity中如何使用单例模式,在unity中,我们分两种单例,一种是继承monobehavior的单例,一种是普通单例。

using UnityEngine;
using System.Collections;

public class Singleton<T> : MonoBehaviour where T : Component
{
private static readonly object syslock = new object();
private static T _instance;
public static T Instance
{
get
{
if (_instance == null)
{
lock (syslock)
{
_instance = FindObjectOfType(typeof(T)) as T;
if (_instance == null)
{
GameObject obj = new GameObject(typeof(T).Name);
obj.hideFlags = HideFlags.DontSave;
obj.hideFlags = HideFlags.HideAndDontSave;
_instance = (T)obj.AddComponent(typeof(T));
}
}
}
return _instance;
}
}
public virtual void Awake()
{
DontDestroyOnLoad(this.gameObject);
if (_instance == null)
{
_instance = this as T;
}
else
{
Destroy(gameObject);
}
}
public static bool IsBuild
{
get
{
return _instance != null;
}
}

}
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class TownsSingleton : Singleton<TownsSingleton>
{
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: