## 22.6 引擎集成Physx 前面小节将常用的Physx功能都介绍了一遍,现在将这些功能都集成到游戏引擎中。 为了展示Physx物理引擎功能,我这里做了一个飞机坠毁的演示: 场景查询:从飞机向下打射线检测距离,播放坠机警报,当触地时,播放爆炸音效。 物理模拟:飞机触地时,根据物理材质的配置,会弹起、再下落、往复几次,最终静止。 触发器:开启触发器后,飞机穿过地面,并回调脚本的OnEnterTrigger。 整体结构 还是老的集成三方库的套路:对Physx某个功能,编写单独的Component实现。 代码结构如下,参照日常使用Unity的习惯设计的,大家都应该很容易理解。 就不再详细介绍具体的代码实现了,打两个断点跑一跑就熟悉了。 疑难点 集成Physx到引擎框架是比较顺的,但是跑测试...
## 22.6 引擎集成Physx 前面小节将常用的Physx功能都介绍了一遍,现在将这些功能都集成到游戏引擎中。 为了展示Physx物理引擎功能,我这里做了一个飞机坠毁的演示: 场景查询:从飞机向下打射线检测距离,播放坠机警报,当触地时,播放爆炸音效。 物理模拟:飞机触地时,根据物理材质的配置,会弹起、再下落、往复几次,最终静止。 触发器:开启触发器后,飞机穿过地面,并回调脚本的OnEnterTrigger。 整体结构 还是老的集成三方库的套路:对Physx某个功能,编写单独的Component实现。 代码结构如下,参照日常使用Unity的习惯设计的,大家都应该很容易理解。 就不再详细介绍具体的代码实现了,打两个断点跑一跑就熟悉了。 疑难点 集成Physx到引擎框架是比较顺的,但是跑测试就遇到的几个问题,提一下遇到的疑难点。 2.1 Shape不可修改 已经附加到 Actor 的 Shape 是不可修改的。 触发器的实现,是通过在Shape上附加数据,添加一个标记,表示当前Shape是Trigger,不参与物理模拟。 一般添加Trigger的代码是这样的: 先添加 RigidDyn...