APSchmidt 发表于 2021-12-2 09:45

Unity 中常用的三种单例模式有哪些?

Unity中的单例,一般分为2大类,一类是普通单例,一类是基于MonoBehaviour的单例。
普通单例,直接生成出来,不用依赖GameObject等,MonoBehaviour的单例需要依赖一个节点,
好处就是可以获得MonoBehariour里面的Start, Update等接口,
同时还可以调用一些组件的接口。如果你的单例不涉及节点相关的功能,
你可以用普通单例,否者建议用基于MonoBehaviour的单例

LiteralliJeff 发表于 2021-12-2 09:55

Unity中的单例,一般分为2大类,一类是普通单例,一类是基于MonoBehaviour的单例。
普通单例,直接生成出来,不用依赖GameObject等,MonoBehaviour的单例需要依赖一个节点,
好处就是可以获得MonoBehariour里面的Start, Update等接口,
同时还可以调用一些组件的接口。如果你的单例不涉及节点相关的功能,
你可以用普通单例,否者建议用基于MonoBehaviour的单例

xiaozongpeng 发表于 2021-12-2 09:55

只要能保证只创建一个,那就是单例模式。至于写法随意。没有三种这样的说法。
可以写一个用于获取唯一静态对象的的泛型类,泛型为子类本身,然后把子类的默认构造方法设为private就行。如果是monobehaviour还需要在awake里面判断场景里是不是已经添加了,如果添加了就把当前的移除。
页: [1]
查看完整版本: Unity 中常用的三种单例模式有哪些?