物理不能使用firebase实时数据库实现统一

时间:2017-11-20 15:05:38

标签: unity3d firebase-realtime-database

我正在使用统一制作1v1多人游戏,例如8球池。我目前使用的方法概述如下: 1)同步两个球员的每个球的位置。 2)如果它是player1的转弯:在白球上施加vector3力并运行物理 3)从白球上的球员1发送力并在球员2上运行。 4)所有球静止或装袋后改变转弯。

问题是即使:白球的初始位置和施加的力量对于两个球员都是相同的。所有球的终点位置都不一样。我猜物理学中有随机性。球移动并且表现不同,特别是在碰撞之后。有一种蝴蝶效应,桌面上球的位置的最终结果对于两个球员都是不同的。

我的问题是,你将如何制作一个1v1 8球池,其中有很多物体和物理环绕,确保两个球员的一切都以同样的方式发生。

1 个答案:

答案 0 :(得分:2)

物理需要在您的应用的单个实例上发生,然后从那里传播给其他人。否则说,一个玩家应该是服务器+客户端,其他玩家应该是客户端。所有物理都发生在服务器上,客户端将命令发送给它,就像施加在白球,方向等上的力一样。

针对网络的Unity HLAPI:https://docs.unity3d.com/Manual/UNetUsingHLAPI.html