繁体   English   中英

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

[英]How to synchronize Unity physics between devices in real time? (Google Play Games plugin for Unity)

我正在Unity中进行实时多人游戏。 两个玩家之间的联系是通过Google Play游戏服务建立的。
一个简单的动作示例-从弹弓射击:玩家用手指拉橡胶并射击。 唯一重要的初始数据是玩家释放橡胶之前的橡胶位置,因此其坐标将在其他设备上发送。 此弹丸获得速度后( RigidBody2D.velocity = new Vector2(...) )飞翔。

问题在于,具有相同的初始数据并且执行相同的代码弹丸会击中一台设备上的目标而错过另一台设备上的目标。

Unity的物理引擎不是有限状态引擎,并且在不同设备中的模拟可能不同。 但是,我仍然以简单的方式将其用于基于物理学的2d游戏,并且效果很好。 这是我遵循的步骤:
1.在进行每一步之前,我确保每个物理对象都位于网络设备上的同一位置。
2.向本地播放器中的播放器对象添加了力量。 然后将力的位置和方向通过网络发送给其他设备。 然后根据它在其他设备上进行仿真。
3.移动完成后(换句话说,所有刚体都停止了),再次检查所有设备上的位置和旋转是否相同。 如果没有,请根据进行此操作的本地玩家调整他们。

重复以上步骤。 第三步是在我采取下一步行动之前,确保100%确保所有设备中的所有对象都是同步的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM