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

[笔记] Unity实现管理类时建议用单例模式还是ScriptableObject?

[复制链接]
发表于 2021-4-28 09:47 | 显示全部楼层 |阅读模式
例如GameManager(管理整个游戏的管理类),甚至LevelLoader(不算管理类,只负责加载关卡),这种整个gameplay期间只应该存在一个实例的类,是应该把它做成一个单例模式的Monobehavior并让它DontDestroyOnLoad,还是把它做成一个ScriptableObject的子类然后在编辑器中只创建一个实例来达到目的呢?
发表于 2021-4-28 09:56 | 显示全部楼层
纯逻辑的内容建议用普通类来实现,能够不加入unity的类就不加,这样你的控制力会更强一些,不会受unity本身的生命周期管理的约束,另外单例的话按需求考虑做有管理的单例,就是单例本身有完整的回收销毁功能,支持回收再创建,用于数据清理和程序初始化用。
当然这种是数据驱动的思维,我所接触的大型项目(MMO类型)都是以这种思维驱动开发,具体设计如果认真考虑的话还要考虑开发成员水平、开发习惯、项目规模、开发成本等条件约束,这些就按需考虑吧。
发表于 2021-4-28 10:04 | 显示全部楼层
一般只需要一个继承mono的单例,其他的单例能不继承就不继承
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-1-31 18:50 , Processed in 0.065575 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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