游戏对象

网络化的游戏对象(GameObjects)是由Mirror的网络系统控制和同步的游戏对象。使用同步的网络化游戏对象,您可以为所有玩家创造一个共享的体验,这些玩家正在玩您游戏的一个实例。他们看到和听到相同的事件和动作 - 即使这可能来自他们在游戏中独特的视角。

在Mirror中,多人游戏通常是使用包含一些网络化游戏对象和常规(非网络化)游戏对象的场景构建的。网络化游戏对象是那些在游戏过程中移动或改变的对象,需要在所有一起玩游戏的用户之间进行同步。非网络化游戏对象是那些在游戏过程中要么根本不移动或改变(例如,静态障碍物如岩石或篱笆),要么是那些移动或改变不需要在玩家之间同步的游戏对象(例如,游戏背景中轻轻摇曳的树木或飘过的云)。

一个网络化游戏对象是附加了Network Identity(网络标识)组件的对象。然而,仅有Network Identity组件并不足以使您的游戏对象在多人游戏中起作用并活跃。Network Identity组件是同步的起点,它允许Network Manager同步游戏对象的创建和销毁,但除此之外,它并不指定您的游戏对象应该同步哪些属性。

每个网络化游戏对象到底应该同步哪些内容取决于您正在制作的游戏类型,以及每个游戏对象的目的是什么。一些您可能想要同步的示例包括:

  • 移动游戏对象的位置和旋转,例如玩家和非玩家角色。

  • 动画游戏对象的动画状态

  • 变量的值,例如游戏当前回合剩余多少时间,或玩家有多少能量。

Mirror可以自动同步其中一些内容。网络化游戏对象的同步创建和销毁由NetworkManager管理,并称为生成(Spawning)。您可以使用Network Transform组件来同步游戏对象的位置和旋转,也可以使用Network Animator组件来同步游戏对象的动画。

要同步网络游戏对象的其他属性,您需要使用脚本。有关此内容的更多信息,请参阅状态同步(State Synchronization)。

最后更新于

这有帮助吗?