网格物理概述

在网格体验中,物理模拟是启用引人入胜的动态内容的关键。 为了为网格参与者提供高质量的共享物理体验,并为开发人员提供创建自定义内容的高效工作流,我们创建了 网格物理 系统。 网格物理基于本地权威模拟,这会导致一个非常简单的体系结构。 客户端上不需要服务器端逻辑和特殊逻辑。 最重要的是,此方法对于与环境交互的每个玩家,即使连接到高延迟网络,此方法也会产生非常响应和低延迟的体验。

分布式物理模拟

显示分布式物理对象的屏幕截图。

网格物理会同步刚性体的位置,并且应该开箱即用,假设所有客户端共享同一场景。 大多数 Unity 物理功能(例如,刚性体、碰撞体、材料和约束)将同步,而无需额外的开发人员努力:

注意:

  • 只有刚性位置与方向与内插同步
  • 必须避免离散状态更改(例如,可中断的约束)和触发器事件

每个客户端负责模拟某些主体,称为分布式模拟 所有权。 当玩家接触刚性主体时,将立即转移模拟所有权,以允许低延迟交互。 对于相邻的主体,物理同步引擎执行本地预测、内插和自动所有权重新分配,以最大程度地减少视觉项目。

网格物理提供交互和其他与物理相关的功能,例如:

  • 各种领域,物理影响身体内部(浮力,重力)
  • 各种组件,以修改各个身体的行为(磁,粘性,可扔)
  • 能够将正文重置为其启动位置(选择性场景清理)
  • 使用网格仿真 对上述功能进行多用户测试的播放模式

以下是可以使用网格物理功能执行更多操作:

  • 允许参与者抓取和携带对象。

  • 控制重力如何影响物体。

    使用重力的游戏的屏幕截图。

  • 使对象“粘滞”-它坚持它命中。 示例:向达特板投掷一个达特,将图片附加到墙上。

    挂在墙上的画作的屏幕截图。

  • 添加与物理体交互的自动播放动画。

    动画触发器的屏幕截图。

  • 允许参与者重置对象(例如,重置棋盘,或在对象分散后清理房间)。

    一个房间的两部分屏幕截图,其中家具混乱,然后有家具的同一个房间回到原位。

  • 当对象进入触发器碰撞体时触发事件。

    触发器卷的屏幕截图。

  • 创建包含字段。 对象将保留在字段的边界内。

    包含字段的屏幕截图。

  • 控制对象的速度。

  • 控制对象的浮标,例如,使船只和其他海上物体“浮动”。

    一艘漂浮在水中的船只的屏幕截图。

  • 控制对象的角速度。

  • 创建爆炸,导致附近物体向外或向特定方向移动。

  • 创建具有预定义速度相互弹跳的“弹跳”对象。

    弹跳中许多球的屏幕截图。

  • 将对象传送到新位置和(可选)新旋转。

    远程传送过程的起点和终点的两部分屏幕截图。

术语

在整个网格物理文章中,“身体”用作“刚性体”的简写。

后续步骤