Unity,我应该将我的游戏引擎脚本附加到什么对象
Unity, to what object should I attach my game engine script
我和我的朋友正在构建一个简单的闲置游戏作为我们在 unity 中的第一个项目。
我们已经到了构建一个脚本来处理所有计算的地步,并与玩家看到的每个 GameObject
进行通信。
现在,我们应该将此脚本附加到什么?
我们宁愿不使用 GameObject
因为:
1) GameObject
太过分了
2) GameObject
位于 space 中,我所有的 "physical" 对象都存在于此(那将是无用的,因为脚本不必 "exist somewhere")
第一次在Whosebug发帖,如有错误请指出^^
惯例说放在主摄像头上还是空的GameObject
。
如果你真的不想做任何一个,你可以让你的 class 静态。
如果您的 class 继承自 MonoBehaviour
,您必须将其附加到 GameObject
。如果你想把它附加到 GameObject
它必须继承自 MonoBehaviour
.
如果您想更好地理解 Unity 方式,我建议您阅读实体组件系统:
GameObject
是实体
MonoBehaviour
是组件
服务和管理器通常在 Unity 中作为组件实现,然后附加到主摄像头或以它们命名的空 GameObject
s。
您可以创建一个普通的单例 class 和 "Game Initializer" 单行为,这将初始化您所有的单例管理器、结构等...
只需使用如下代码将此单一行为添加到空游戏对象中的每个场景:
if(GameManager.instance == null)
new GameManager();
或者对于 scriptableObjects,
if(GameManager.instance == null)
gameManager.init()
此外,一个好的选择是使用实体系统模式,这里是统一框架(Unity-Ash、Entitas 等)
我和我的朋友正在构建一个简单的闲置游戏作为我们在 unity 中的第一个项目。
我们已经到了构建一个脚本来处理所有计算的地步,并与玩家看到的每个 GameObject
进行通信。
现在,我们应该将此脚本附加到什么?
我们宁愿不使用 GameObject
因为:
1) GameObject
太过分了
2) GameObject
位于 space 中,我所有的 "physical" 对象都存在于此(那将是无用的,因为脚本不必 "exist somewhere")
第一次在Whosebug发帖,如有错误请指出^^
惯例说放在主摄像头上还是空的GameObject
。
如果你真的不想做任何一个,你可以让你的 class 静态。
如果您的 class 继承自 MonoBehaviour
,您必须将其附加到 GameObject
。如果你想把它附加到 GameObject
它必须继承自 MonoBehaviour
.
如果您想更好地理解 Unity 方式,我建议您阅读实体组件系统:
GameObject
是实体
MonoBehaviour
是组件
服务和管理器通常在 Unity 中作为组件实现,然后附加到主摄像头或以它们命名的空 GameObject
s。
您可以创建一个普通的单例 class 和 "Game Initializer" 单行为,这将初始化您所有的单例管理器、结构等...
只需使用如下代码将此单一行为添加到空游戏对象中的每个场景:
if(GameManager.instance == null)
new GameManager();
或者对于 scriptableObjects,
if(GameManager.instance == null)
gameManager.init()
此外,一个好的选择是使用实体系统模式,这里是统一框架(Unity-Ash、Entitas 等)