【问题标题】:Problem updating position of grabbable GameObject in VR Scene using PUN2 and Unity3D使用 PUN2 和 Unity3D 更新 VR 场景中可抓取游戏对象位置的问题
【发布时间】:2019-09-09 18:11:24
【问题描述】:

我正在尝试将 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

【问题讨论】:

  • 我已经编辑了你的另一个问题的标题,但是由于你在这个问题上犯了同样的错误,这次也在邮件正文中犯了这个错误,这次我写了一个评论让你意识到这一点:这个问题是关于 PUN2(Photon Unity Networking 2)资产,它是 Photon 4 的客户端(Photon Cloud 也运行 Photon 4) - 它与 Photon 2 无关,后者已由8 年前,2011 年的光子 3。
  • 我第一次批准了编辑,所以不知道为什么它会恢复到原来的状态。刚刚又做了,谢谢你的解释。
  • 我昨天对您的另一个问题进行了编辑 (stackoverflow.com/questions/57851568/…)。在我发表评论后 20 小时,@JohnTube 在这个问题上做了。所以我猜你批准了我对另一个问题的编辑,现在批准了他对这个问题的编辑,只是混淆了 2。否则编辑的恢复将显示在编辑历史中,而它没有。
  • 好吧,我觉得还是有点混乱,重要的是现在它已经修复了。

标签: unity3d virtual-reality oculus photon oculusquest


【解决方案1】:

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

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

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

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

【讨论】:

  • 感谢您发布您对问题的答案...我一直在寻找解决方案。出于兴趣,您是否找到任何其他可行的解决方案?还是这是最好的答案(顺便投票)
  • (我发现我只需要启用“isKinematic”,并转移所有权,不需要禁用重力,不需要同步速度和角速度)
  • 所以你没有使用Photon Rigid Body View 脚本?
  • 即使我在对象上将重力设置为 true 并在操纵它时激活 isKinetic,我也无法将对象扔掉。一旦我尝试扔它,物体就会回到被扔之前的最后一个位置。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多