c#实现代码完成mogre1.6版本中的eyecm.PhysX中的一个物理shape与另一个物理shape是否相交接触
时间: 2024-02-20 18:02:42 浏览: 20
你可以使用 Mogre.PhysX 库中的 PxGeometry API 来判断两个物理形状是否相交。具体实现代码如下:
```csharp
using Mogre.PhysX;
using Mogre;
public bool CheckCollision(Shape shape1, Shape shape2)
{
bool result = false;
// 获取 shape1 和 shape2 对应的物理形状
PxGeometry geom1 = shape1.GetGeometry();
PxGeometry geom2 = shape2.GetGeometry();
// 创建 PhysX 场景
Scene scene = new Scene();
// 创建两个 PhysX 物理形状
Shape physxShape1 = scene.CreateShape(geom1);
Shape physxShape2 = scene.CreateShape(geom2);
// 检查两个物理形状是否相交
if (physxShape1.CheckOverlap(physxShape2))
{
result = true;
}
// 销毁 PhysX 物理形状和场景
physxShape1.Dispose();
physxShape2.Dispose();
scene.Dispose();
return result;
}
```
在上述代码中,我们首先获取了两个物理形状对应的 PhysX 物理形状,然后创建了一个 PhysX 场景,并在场景中创建了两个物理形状。最后,使用 `CheckOverlap()` 方法判断两个物理形状是否相交,如果相交则返回 true,否则返回 false。最后,我们需要释放创建的 PhysX 物理形状和场景。