Unity实现管理类时建议用单例模式还是ScriptableObject?
例如GameManager(管理整个游戏的管理类),甚至LevelLoader(不算管理类,只负责加载关卡),这种整个gameplay期间只应该存在一个实例的类,是应该把它做成一个单例模式的Monobehavior并让它DontDestroyOnLoad,还是把它做成一个ScriptableObject的子类然后在编辑器中只创建一个实例来达到目的呢? 纯逻辑的内容建议用普通类来实现,能够不加入unity的类就不加,这样你的控制力会更强一些,不会受unity本身的生命周期管理的约束,另外单例的话按需求考虑做有管理的单例,就是单例本身有完整的回收销毁功能,支持回收再创建,用于数据清理和程序初始化用。当然这种是数据驱动的思维,我所接触的大型项目(MMO类型)都是以这种思维驱动开发,具体设计如果认真考虑的话还要考虑开发成员水平、开发习惯、项目规模、开发成本等条件约束,这些就按需考虑吧。 一般只需要一个继承mono的单例,其他的单例能不继承就不继承
页:
[1]