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;