怎么遍历Collision中的contacts属性来获取每个碰撞体的信息
时间: 2024-03-06 11:49:44 浏览: 33
在Unity中,Collision类型的变量中包含了一个名为contacts的属性,它是一个ContactPoint类型的数组,可以通过遍历该数组获取每个碰撞体的信息。下面是一个示例代码:
```csharp
void OnCollisionEnter(Collision collision) {
ContactPoint[] contacts = collision.contacts;
for (int i = 0; i < contacts.Length; i++) {
ContactPoint contact = contacts[i];
Debug.Log("碰撞体:" + contact.thisCollider.name + " 与 " + contact.otherCollider.name + " 发生碰撞,碰撞点坐标为:" + contact.point);
}
}
```
在上述代码中,我们首先通过collision.contacts获取到了一个ContactPoint类型的数组contacts,然后通过遍历数组,获取每个碰撞点的信息,如碰撞体的名称、碰撞点的坐标等。需要注意的是,每个ContactPoint对象中包含了两个碰撞体,一个是thisCollider,一个是otherCollider,分别表示本物体和碰撞物体的碰撞体。
相关问题
Obi collision Material 中参数Rolling Contacts的含义
A:Obi collision Material 中的 Rolling Contacts 参数表示对象在与其他对象碰撞时滚动的摩擦系数。该参数用于计算对象在碰撞过程中滚动的能量损失,并影响对象在接触面上的滚动摩擦力量。较高的滚动摩擦系数将降低对象在碰撞过程中的滚动速度,从而使其更容易停止。滚动摩擦力量也会影响对象在接触面上的移动。
collision.contacts[0].normal
`collision.contacts[0].normal` 是 Unity 引擎中用于获取碰撞事件中第一个接触点的法线向量的属性。在碰撞发生时,该属性返回的是与碰撞体相交的表面的法线向量,可以用于计算碰撞后物体的反弹方向或者碰撞后物体的旋转方向。需要注意的是,`collision.contacts` 是一个数组,如果有多个接触点,可以通过索引值来获取不同的法线向量。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)