找回密码
 立即注册
查看: 513|回复: 2

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

[复制链接]
发表于 2021-12-2 09:45 | 显示全部楼层 |阅读模式
Unity中的单例,一般分为2大类,一类是普通单例,一类是基于MonoBehaviour的单例。
普通单例,直接生成出来,不用依赖GameObject等,MonoBehaviour的单例需要依赖一个节点,
好处就是可以获得MonoBehariour里面的Start, Update等接口,
同时还可以调用一些组件的接口。如果你的单例不涉及节点相关的功能,
你可以用普通单例,否者建议用基于MonoBehaviour的单例
发表于 2021-12-2 09:55 | 显示全部楼层
Unity中的单例,一般分为2大类,一类是普通单例,一类是基于MonoBehaviour的单例。
普通单例,直接生成出来,不用依赖GameObject等,MonoBehaviour的单例需要依赖一个节点,
好处就是可以获得MonoBehariour里面的Start, Update等接口,
同时还可以调用一些组件的接口。如果你的单例不涉及节点相关的功能,
你可以用普通单例,否者建议用基于MonoBehaviour的单例
发表于 2021-12-2 09:55 | 显示全部楼层
只要能保证只创建一个,那就是单例模式。至于写法随意。没有三种这样的说法。
可以写一个用于获取唯一静态对象的的泛型类,泛型为子类本身,然后把子类的默认构造方法设为private就行。如果是monobehaviour还需要在awake里面判断场景里是不是已经添加了,如果添加了就把当前的移除。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-25 15:58 , Processed in 0.092287 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表