Unity 中常用的三种单例模式有哪些?
Unity中的单例,一般分为2大类,一类是普通单例,一类是基于MonoBehaviour的单例。普通单例,直接生成出来,不用依赖GameObject等,MonoBehaviour的单例需要依赖一个节点,
好处就是可以获得MonoBehariour里面的Start, Update等接口,
同时还可以调用一些组件的接口。如果你的单例不涉及节点相关的功能,
你可以用普通单例,否者建议用基于MonoBehaviour的单例 Unity中的单例,一般分为2大类,一类是普通单例,一类是基于MonoBehaviour的单例。
普通单例,直接生成出来,不用依赖GameObject等,MonoBehaviour的单例需要依赖一个节点,
好处就是可以获得MonoBehariour里面的Start, Update等接口,
同时还可以调用一些组件的接口。如果你的单例不涉及节点相关的功能,
你可以用普通单例,否者建议用基于MonoBehaviour的单例 只要能保证只创建一个,那就是单例模式。至于写法随意。没有三种这样的说法。
可以写一个用于获取唯一静态对象的的泛型类,泛型为子类本身,然后把子类的默认构造方法设为private就行。如果是monobehaviour还需要在awake里面判断场景里是不是已经添加了,如果添加了就把当前的移除。
页:
[1]