同步问题(统一+光子):第5部分

我们用同步项目的理论解决方案的实现来结束本系列。

本文是从同步问题(Unity + Photon)开始的系列文章的一部分:第1部分

我们将像以前一样创建一堵墙,以抽象地表示第二个应用程序控制的球拍(右)。 在第一个游戏(左)中,我们将墙变灰并禁用对撞机; 我们希望第二个应用程序对球与墙之间的碰撞具有权威性。

注意 :在这一点上,我们希望这些球不同步。

资产/表/GameManager.cs

观察结果:

  • 球的位置是同步的。
  • 我们在第一场比赛中确实看到了一件神器。 球似乎穿透了墙壁,然后迅速跳跃
  • 如果将球击中的位置非常接近墙壁和侧面相交的位置,则将出现问题,因为我们将球放置在墙壁内的第一个(左侧)应用程序中。 这确实是一个极端情况(SMILE)。

注意 :我能想到的唯一解决方案是将侧面(顶部和底部)破碎成碎片,并使靠近墙壁(桨叶)的小碎片与墙壁具有相同的处理方式。

隐藏神器

努力寻找隐藏方法,因为在碰撞发生之前需要掩盖球和墙壁。 一种简单的解决方案是在碰撞之前在工件的区域上临时显示半透明的游戏对象。

在此示例中,我们创建一个Cube游戏对象(在Resources文件夹中将其转换为预制的Obscure ):

  • 我们将其定位为立即覆盖墙壁和周围的空间
  • 我们将材质设置为半透明材质
  • 我们将Box Collider设置为Is Trigger ; 防止碰撞但触发事件
  • 我们对其应用以下脚本; 显示和隐藏它

资产/表/Obscure.cs

包起来

希望对您有所帮助。