之前是看文档,大概知道这种用法,今天跑了下例子,记录一下
步骤
实现回调函数
PhysX总的来说有两种碰撞检测的用法
-
(1)主动:自己调用raycast、sweep以及overlap函数去检测
-
(2)被动:写回调函数,场景里面一旦发生碰撞,就会回调自己实现的函数里面,做自己的逻辑
-
PxSimulationEventCallback
继承这个纯虚类,实现其中的两个函数
class PhysXCallback :public PxSimulationEventCallback {
public:
PhysXCallback();
virtual void onContact(const PxContactPairHeader& pairHeader, const PxContactPair* pairs, PxU32 nbPairs);
virtual void onTrigger(PxTriggerPair* pairs, PxU32 count);
virtual void onConstraintBreak(PxConstraintInfo*, PxU32) {}
virtual void onWake(PxActor**, PxU32) {}
virtual void onSleep(PxActor**, PxU32) {}
virtual void onAdvance(const PxRigidBody*const*, const PxTransform*, con

本文介绍了使用PhysX进行碰撞检测的方法,包括主动检测和被动检测两种方式。通过实现PxSimulationEventCallback类并注册,可以处理碰撞事件。文章还详细说明了如何设置触发器和接触标志来启用回调。
最低0.47元/天 解锁文章
1965





