首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在设备之间实时同步Unity物理?(适用于Unity的Google Play游戏插件)

如何在设备之间实时同步Unity物理?(适用于Unity的Google Play游戏插件)
EN

Stack Overflow用户
提问于 2018-02-04 04:48:09
回答 1查看 1.2K关注 0票数 2

我正在开发Unity中的实时多人游戏。两个玩家之间的连接是通过Google Play游戏服务建立的。

弹弓动作射击的一个简单例子:玩家用手指拉动橡皮,然后投篮。在玩家释放橡皮之前,唯一重要的初始数据是橡皮的位置,所以它的坐标被发送到其他设备上。在这个弹丸获得速度(RigidBody2D.velocity = new Vector2(...))并飞起来之后。

问题是,拥有相同的初始数据和执行相同的代码投射可能在一个设备上命中目标,而在另一个设备上未命中。

EN

回答 1

Stack Overflow用户

发布于 2018-02-05 02:11:27

Unity的物理引擎不是有限状态引擎,可以在不同的设备上进行不同的模拟。但是,尽管如此,我还是以一种简单的方式将其用于基于物理的2d游戏,并且运行得相当好。下面是我遵循的步骤:

  1. 在每次移动之前,我确保每个物理对象都在网络设备上的相同位置。
  2. 为本地播放器中的播放器对象添加了力。然后通过网络将力的位置和方向发送到其他设备。然后根据它在其他设备上进行模拟。
  3. 在移动完成后(也就是说,所有刚体都停止了),仔细检查所有设备上的位置、旋转是否相同。如果没有,请根据采取行动的本地玩家对齐。

重复上述步骤。第三步就是要100%确定所有对象在所有设备中都是同步的,然后再进行下一步操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48601875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档