Skip to content

3D 物理引擎

添加物理元素

在游戏事件中添加一个物理元素可以分为以下几个步骤:

  • 新建一个节点。此处新建一个立方体模型 Cube;

  • 添加碰撞组件,此处添加一个 盒碰撞体组件。在 属性检查器 面板下方点击 添加组件 按钮,在 Physics 目录下选择 BoxCollider 并调整参数; 为了使它具有物理行为,接着添加一个刚体 RigidBody 组件。

  • 这样,便有了一个 既有碰撞器又有物理行为 的一个物理元素。

射线以及几何体检测

游戏中可能会需要对某些物理特性进行检测,如子弹是否击中目标,可否将某些家具摆放在特定位置是,检测方法一般是发射一条,多条射线或者某种几何体(通常为模型的包围盒、胶囊体等),可以参考下列的文档来进行投射检测。

  • 射线检测

  • 几何投射检测

绘制物理调试信息

物理系统默认是不绘制任何调试信息的,如果需要绘制调试信息,请设置

PhysicsSystem.instance.debugDrawFlags

物理系统提供了各种各样的调试信息,可以通过组合这些信息来绘制相关的内容。

EPhysicsDrawFlags.NONE = 0:不绘制任何内容 EPhysicsDrawFlags.WIRE_FRAME = 1:绘制碰撞体线框 EPhysicsDrawFlags.CONSTRAINT = 2:绘制约束 EPhysicsDrawFlags.ABB = 4:绘制包围盒。

想要绘制所有信息,可参考如下代码:

ts
PhysicsSystem.instance.debugDrawFlags =
  EPhysicsDrawFlags.WIRE_FRAME |
  EPhysicsDrawFlags.AABB |
  EPhysicsDrawFlags.CONSTRAINT;
  • 设置绘制标志位为 EPhysicsDrawFlags.NONE,即可以关闭绘制。
ts
PhysicsSystem.instance.debugDrawFlags = EPhysicsDrawFlags.NONE;