unity-game-engine - 使用 Firebase 实时数据库进行统一时,物理效果无法按预期工作

标签 unity-game-engine firebase-realtime-database

我正在使用 Unity 制作 1v1 多人游戏,例如 8 球台球。我目前使用的方法概述是: 1) 同步两个球员的每个球的位置。 2) 如果轮到玩家 1:将矢量 3 力施加到白球上并运行物理 3) 将玩家 1 的力发送到白球上并将其运行到玩家 2 上。 4) 一旦所有球静止或入袋,就改变转弯。

问题是,即使:白球的初始位置和施加的力对于两个玩家来说都是相同的。所有球的终点位置并不相同。我猜物理学中存在随机性。球的移动和行为不同,尤其是在碰撞后。这有点蝴蝶效应,两个玩家的球在 table 上的位置的最终结果是不同的。

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

最佳答案

物理需要在应用程序的单个实例上发生,然后从那里传播到其他实例。换句话说,一个玩家应该是服务器+客户端,其他玩家应该是客户端。所有物理现象都发生在服务器上,客户端向服务器发送命令,例如施加在白球上的力、方向等。

用于网络的 Unity HLAPI:https://docs.unity3d.com/Manual/UNetUsingHLAPI.html

关于unity-game-engine - 使用 Firebase 实时数据库进行统一时,物理效果无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47395041/

相关文章:

Android - 返回相对于 Firebase 的 boolean 值

android - 阴影显示在统一编辑器中,但不显示在 Android 设备上

javascript - Q : How to display an image generated in Unity on a phone controller using HappyFunTimes?

unity-game-engine - 统一网络: concurrent users

c# - Unity 跑酷游戏中的对象池实现(重用)

ios - 在 Xcode 上构建并在 Testflight 上测试后,应用程序启动时出现粉红色屏幕和空白屏幕

node.js - 创建多个 firebase-admin 实例

javascript - 尝试使用 JavaScript 访问 Firebase DB 时出现“未定义”错误

swift - 根据值设置 TabBarController 索引的 View Controller

android - firebase android 用户数据库注册错误