Physx Trigger
1. Trigger启用
启用Trigger必须要设置一个Trigger属性的Shape.设置了Trigger属性,就没有碰撞属性了
2. DynamicActor注意
由于Trigger Shape无法计算mass.所以如果只有单个Shape构成的动态Actor需要指定mass和inertia否则生成Actor会报错.
NxActor::checkValid()返回值的内容参考另一片文章:Physx Actor创建属性注意
3. ShapeFlags注意
ShapeFlags可以使用下面的Flag. 如果设置了NX_SF_DISABLE_COLLISION会无法检测Trigger
NxSphereShapeDesc SphereDesc;
SphereDesc.radius = size;
SphereDesc.shapeFlags = NX_TRIGGER_ON_ENTER | NX_TRIGGER_ON_LEAVE | NX_SF_VISUALIZATION | NX_SF_CLOTH_DISABLE_COLLISION | NX_SF_SOFTBODY_DISABLE_COLLISION;
4. A、B Trigger只会Trigger一次,不会A,B Trigger和B,A Trigger
5. 只有A、B都设置了该Flag才会Trigger该Flag. A设置了 NX_TRIGGER_ON_STAY,B没有设置NX_TRIGGER_ON_STAY,则A、B不会产生该事件
6. ShapeGroup的碰撞检测设置对Trigger也有效
1. Trigger启用
启用Trigger必须要设置一个Trigger属性的Shape.设置了Trigger属性,就没有碰撞属性了
2. DynamicActor注意
由于Trigger Shape无法计算mass.所以如果只有单个Shape构成的动态Actor需要指定mass和inertia否则生成Actor会报错.
NxActor::checkValid()返回值的内容参考另一片文章:Physx Actor创建属性注意
3. ShapeFlags注意
ShapeFlags可以使用下面的Flag. 如果设置了NX_SF_DISABLE_COLLISION会无法检测Trigger
NxSphereShapeDesc SphereDesc;
SphereDesc.radius = size;
SphereDesc.shapeFlags = NX_TRIGGER_ON_ENTER | NX_TRIGGER_ON_LEAVE | NX_SF_VISUALIZATION | NX_SF_CLOTH_DISABLE_COLLISION | NX_SF_SOFTBODY_DISABLE_COLLISION;
4. A、B Trigger只会Trigger一次,不会A,B Trigger和B,A Trigger
5. 只有A、B都设置了该Flag才会Trigger该Flag. A设置了 NX_TRIGGER_ON_STAY,B没有设置NX_TRIGGER_ON_STAY,则A、B不会产生该事件
6. ShapeGroup的碰撞检测设置对Trigger也有效