Table of Contents

碰撞体

初级 设计师

Warning

Bullet Physics is being phased out. We no longer plan to support or expand its features as our focus shifts to Bepu Physics. We recommend transitioning to Bepu Physics for access to the latest updates and ongoing improvements.

要在项目中使用物理,请向实体添加碰撞体(Collider) 组件。

碰撞体定义物理对象的形状和规则。有三种类型:

  • 静态碰撞体不会移动(例如墙壁、地面、重物等)
  • 刚体会被碰撞和重力等力推动(例如球、桶等)
  • 角色由用户输入控制(即玩家角色)

你还可以:

碰撞体如何交互

碰撞体按照下表进行交互。

运动学对象 运动学触发器 刚体碰撞体 刚体触发器 静态碰撞体 静态触发器
运动学对象 碰撞 碰撞 碰撞和动态响应 碰撞 碰撞 碰撞
运动学触发器 碰撞 碰撞 碰撞 碰撞 碰撞 碰撞
刚体碰撞体 碰撞和动态响应 碰撞 碰撞和动态响应 碰撞 碰撞和动态响应 碰撞
刚体触发器 碰撞 碰撞 碰撞 碰撞 碰撞 碰撞
静态碰撞体 碰撞 碰撞 碰撞和动态响应 碰撞 无 无
静态触发器 碰撞 碰撞 碰撞 碰撞 无 无
  • "碰撞"仅指碰撞信息和事件。这意味着碰撞在代码中被检测到,但对象之间不会互相碰撞(没有动态响应)。

  • "动态响应"意味着既有碰撞信息和事件,又有动态响应(即碰撞体互相碰撞而不是相互穿过)。

例如,刚体碰撞体与静态碰撞体发生动态碰撞(即撞上它们)。但是,没有任何对象与触发器发生动态碰撞;碰撞在代码中被检测到,但对象只是直接穿过。

在 Scene Editor 中显示碰撞体

默认情况下,碰撞体在 Scene Editor 中是不可见的。要显示它们:

  1. 在 Game Studio 工具栏右上角,点击 Display gizmo options 图标。

    显示 gizmo 选项

  2. 选择 Physics。

    显示 physics 选项

Scene Editor 会显示碰撞体形状。

显示 physics

在运行时显示碰撞体

你可以让碰撞体在运行时可见,这对于调试物理问题很有用。为此,请使用:

this.GetSimulation().ColliderShapesRendering = true;

Note

无限平面的碰撞体形状始终不可见。

键盘快捷键

要使用键盘快捷键在运行时显示或隐藏碰撞体形状,请使用 Debug physics shapes 脚本。

  1. 在 Asset View 中,点击 Add asset。

  2. 选择 Scripts > Debug physics shapes。

    添加调试物理形状脚本

  3. 在 Game Studio 工具栏中,点击 Reload assemblies and update scripts。

    重新加载程序集

  4. 将 Debug physics shapes 脚本作为组件添加到场景中的某个实体上。哪个实体都可以。

    添加调试物理形状脚本组件

该脚本将碰撞体形状的可见性绑定到 Left Shift + Left Ctrl + P,这样你就可以在运行时开关它。你可以编辑脚本以绑定不同的按键组合。

另请参阅