我是一名Unity新手,目前正在研究的一个概念让我感到困惑。在实现一个游戏管理器的对象的过程中,我能处理游戏核心的基本操作。出于练习和熟悉unity, 我打算重复制作一款chess游戏。打算为每一块棋子(chess piece)创建多个预设物体, 并且预设物体内的脚本应引用游戏管理器。如此做法是否有效?游戏管理器并非预设物体,所以我无法直接将它拖入预设物体中,吗?
网络上的一种解决方式是使用单例(Singletons),这种方式确实能实现目标,然而我也注意到很大多人对单例在较大的项目中表示疑虑,他们认为单例并不合适。虽然我对背后的原理不是很好理解,但这又让我想试试别的方法。
对我来说很重要的是能够培养好习惯,尤其是在初期阶段。如果单例不是最佳实践,那么我就尽量不使用它们。因此,我寻找了其他的方法。
除了使用单例以外,我还看到了一些东西,如在预设物体创建后,使用 Instantiate()方法来创建对象,并在创建后立即赋值GameManager引用,这种方法确实有效,然而这一方法依赖于使用代码来创建预设物体。对于能够方便的测试,我希望能够能将预设物体直接拖入场景。
我也看到了一些类似于scriptableObject的东西,不过我完全不明白它的作用和用处,直到刚发现它的介绍。这种解决方式好像并非大热门,也就是说可能不是大多数开发者所使用的。这种方法合适吗?
最后,我听到了一些关于依赖注入(Dependency Injection)的相关方法,我大致的理解依赖注入的原理但是我目前不太确定是否该方法适用于目前的场景。希望游戏管理器在不同部分都能存储同样的值。在这种场景下,如果有更好的解法,请指教一下。对于这些问题,我希望能获得最佳实践指导。
评论 (0)