单例模板

作者: Codk | 来源:发表于2017-02-28 17:16 被阅读0次

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

    基本要求

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

    完整代码

    public abstract class Singleton<T> : 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<XXX>

    相关文章

      网友评论

        本文标题:单例模板

        本文链接:https://www.haomeiwen.com/subject/dxgxgttx.html