单例模板

为避免来反复写单例模式,在框架中构建一个单例模板,需要用的地方直接继承就可。

基本要求

  1. 单例模式必须继承自MonoBehaviour。
  2. 由于Unity中利用单例模式需要用到Awake(),因此,对于继承关系的模板,需要对Awake进行修饰为protected,这样继承后的模板才能使用Awake,因为继承关系只能访问public和protected修饰的方法。同时为了能在子类中修改,还要对Awake加上virtual修饰,便于子类修改。

完整代码

public abstract class Singleton : MonoBehaviour
    where T : MonoBehaviour {
    private static T m_instance = null;
      public static T Instance {
        get { return m_instance; }
     }
    protected virtual void Awake() {
        m_instance = this as T;
    }
}

使用方法

在需要使用模板的地方,继承此模板,如下代码:
public class XXX : Singleton

你可能感兴趣的:(单例模板)