PhysX学习记录 九 Shape参数说明

64 篇文章 0 订阅
16 篇文章 2 订阅

由于形体创建时,使用的Actor坐标系。所以要注意Shape相对Actor中心的位置。正确的决定Actor Frame原点的位置对于形体的正确控制是非常必要的。


Box Shape:

dimensions: 参数给出的是1/2边长。(1/2 x, 1/2 y, 1/2 z)
shape frame point: 在长方体中心


Capsule Shape:

Height:中间圆柱部分的高度

Radius:两头半圆部分的半径

Shape Frame Point:在圆柱的中心。默认情况下圆柱是平行于Y轴的。


要实现这个功能,您需要使用 Mogre.PhysX 库中的相关类和方法。以下是一个示例代码,可以帮助您完成这个任务: ```csharp using Mogre; using Mogre.PhysX; // 定义一个查询接口 public class PhysXContactReport : ContactReport { public override bool OnContactNotify(ContactPair pair, ContactPairFlag events) { // 获取接触的两个物理形状 Shape shape1 = pair.Shape1; Shape shape2 = pair.Shape2; // 输出形状的名称 LogManager.Singleton.LogMessage("Shape 1: " + shape1.Name); LogManager.Singleton.LogMessage("Shape 2: " + shape2.Name); return true; } } // 在需要查询的时候,创建一个场景和相关的物理形状 Scene scene = new Scene(); BoxShape boxShape = new BoxShape(new Vector3(1, 1, 1)); // 创建一个查询接口对象 PhysXContactReport contactReport = new PhysXContactReport(); // 进行形状查询并输出结果 scene.SceneCollision.OnContactNotify += contactReport.OnContactNotify; boxShape.QueryShapes(Vector3.ZERO, Quaternion.IDENTITY); // 释放资源 scene.Dispose(); boxShape.Dispose(); ``` 在这个示例代码中,我们首先定义了一个 `PhysXContactReport` 类,用于实现查询接口。在 `OnContactNotify` 方法中,我们可以获取接触的两个物理形状,并输出它们的名称。 然后,在需要查询的时候,我们创建了一个场景和一个物理形状,并且创建了一个查询接口对象。我们通过调用 `QueryShapes` 方法来进行形状查询,并在查询结果中输出了接触的物理形状的名称。 最后,我们释放了所有的资源。 请注意,这只是一个示例代码,您需要根据自己的实际需求进行适当的修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值