使用PUN2和Unity3D

时间:2019-09-09 18:11:24

标签: unity3d virtual-reality oculus photon oculusquest

我正在尝试将PUN2支持添加到一个简单的Oculus入门场景(桌子上的多维数据集)。我可以在基本的Photon2设置之上运行官方的Avatar synchronization

这是当前序列:

  • 玩家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

1 个答案:

答案 0 :(得分:0)

出于记录,我发现了问题所在,但仍在研究完整的解决方案。当 P1 操作一个对象(使用assign(x[2],s[[2]])在客户端之间保持同步)时, P2 看到该多维数据集试图在与重力作斗争的同时同步其位置/旋转(创建那奇怪的跳跃行为)。

经过大量研究,我发现了可以解决问题的可行方法:

  • 添加> assign(x[[1]],s[[1]]) > x [1] "a" "b" "c" "d" > a N1 N2 N3 N4 N5 N6 1 0 1 0 1 1 > assign(x[[2]],s[[2]]) > b N1 N2 N3 N4 N5 N6 1 0 1 1 1 1 ... (同步速度和角速度)
  • 添加一个 RPC (在操作过程中激活),该操作是:
    • 禁用重力
    • 启用Photon Transform View
    • 将所有权转让给正在操纵对象的播放器。

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