在 Unity Billiard 游戏上实现多人游戏的最佳方法是啥?
Posted
技术标签:
【中文标题】在 Unity Billiard 游戏上实现多人游戏的最佳方法是啥?【英文标题】:What's the best method to implement multiplayer on a Unity Billiard game?在 Unity Billiard 游戏上实现多人游戏的最佳方法是什么? 【发布时间】:2016-09-22 04:01:06 【问题描述】:我正在制作一个在线台球游戏。我已经完成了单人游戏、在线账户系统、在线库存系统等的所有机制。一切都很好,但我现在已经到了最难的部分,多人游戏。我尝试在每一帧同步每个球的位置,但运动一点也不顺畅,球会来回移动,总的来说看起来很“糟糕”。有没有人对此有任何解决方案?其他台球游戏(例如 Miniclip 中的台球游戏)是如何做到的,老实说,我被困在这里并感到沮丧,因为我花了一段时间学习 Photon 网络,然后发现它在处理物理同步方面并不那么好。
uNet 在这里会是更好的选择吗?
感谢您给我的任何帮助。谢谢!
【问题讨论】:
【参考方案1】:这已经用 PUN 完成了:https://www.assetstore.unity3d.com/en/#!/content/15802
您可以尝试使用同步设置或实现自定义 OnPhotonSerializeView(请参阅 PUN 包中的 DemoSynchronization)。确保在同步客户端上禁用物理模拟。物理模拟示例见 DemoBoxes。
或者,如果球只能沿线移动,则不要每帧发送所有位置。仅在球碰撞时发送位置和速度,并在它们之间进行简单的速度模拟。这甚至可以适用于更全面的物理,但一般规则是相同的:在关键点同步。当然这不像自动同步那么简单。
另请注意,经典台球是回合制游戏,您没有玩家互动的所有复杂性。在最坏的情况下,您可以在当前播放器客户端上“录制”模拟并在其他客户端上“播放”它。
【讨论】:
嘿,我尝试同步球的速度、位置和角速度,但结果仍然不一样,它们从一个客户端到另一个客户端不同。有什么帮助吗? DemoBoxes 中使用的物理实现怎么样?由于某种原因它不适合您?以上是关于在 Unity Billiard 游戏上实现多人游戏的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Photon Unity Network(多人游戏)在 Unity 中实时同步
Unity Gun Ammo 在多人游戏中没有减少问题(可能与我的多人游戏系统:光子有关)