向大家提供一个单例模式的模板,只要继承这个类就可以实现单例模式。
Unity单例模板
using System;
using UnityEngine;
using System.Collections;
using System.Text;
/// <summary>
/// Unity单利基类
/// </summary>
public abstract class Singleton_U<T> : MonoBehaviour
where T:MonoBehaviour//T泛型继承单例模板的类最终继承哪,约定所有单利类必须是Unity的组件
{
private static T _instance=null;//声明一个私有字段
public static T _Instance//提供只读属性
{
get { return _instance; }
}
//类通过Awake()实例化单例对象,同时可以让子类重写Awake()
protected virtual void Awake()
{
_instance = gameObject.GetComponent<T>();
}
}
C#单例模板
/// <summary>
/// C#单利基类
/// </summary>
public class Singleton_C<T> where T: class,new ()
{
private static T instance = null;
public static T Instance
{
get {
if (instance == null)
instance = new T();
return instance;
}
}
}