0

我正在尝试将 PUN2 支持添加到一个简单的 Oculus 入门场景(桌子上的立方体)。我能够在基本的 Photon2 设置之上运行官方Avatar 同步。

这是当前的序列:

  • 玩家 1(P1 - 使用 Quest 的人)创建房间并加入它

  • 玩家 2(P2 - 使用 Unity Player 的玩家)加入房间

  • 玩家 1 抓住一个立方体并移动它

如果 P1 只是水平拖动立方体,P2 会看到立方体正常移动,但如果他试图将它从桌子上抬起,从 P2 的角度来看,立方体看起来很疯狂。

看起来立方体与重力作斗争,但我不完全确定发生了什么。您可以在此视频中看到一个示例,其中水平拖动和从桌子上抬起之间存在交替:https ://gofile.io/?c=A9PN41

如果我在立方体上禁用重力,它似乎工作正常(尽管与 P1 移动对象的方式相比,插值有点慢):https ://gofile.io/?c=jM4qEE

关键是我不能让立方体在场景中飞来飞去:)

使用 Unity 2019.1 / PUN2 / Oculus Quest

4

1 回答 1

2

对于记录,我发现了问题所在,但仍在研究完整的解决方案。当P1操作一个对象(使用 保持客户端之间的同步Photon Transform View)时,P2看到立方体在与重力作斗争时试图同步其位置/旋转(产生奇怪的跳跃行为)。

经过广泛的研究,我发现了一种可以解决问题的可能方法:

  • 添加一个Photon Rigid Body View(同步速度和角速度)
  • 添加一个RPC(在操作期间激活),它:
    • 禁用重力
    • 启用isKinematic
    • 将所有权转移给正在操作该对象的玩家。

这需要在两个客户端(Master/Normal)上进行全面测试,但到目前为止,结果似乎很有希望。

于 2019-09-11T12:45:26.710 回答