物理引擎生成的接触点。
每个接触均包含一个接触点、法线和碰撞的两个碰撞体(请参阅 ContactPoint)。
从内部 OnCollisionStay 或 OnCollisionEnter,能够
始终确保 contacts
至少有一个元素。
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour {
void OnCollisionStay(Collision collision) {
foreach (ContactPoint contact in collision.contacts) {
print(contact.thisCollider.name + " hit " + contact.otherCollider.name);
Debug.DrawRay(contact.point, contact.normal, Color.white);
}
}
}
// A grenade
// - instantiates a explosion prefab when hitting a surface
// - then destroys itself
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour
{
public Transform explosionPrefab;
void OnCollisionEnter(Collision collision)
{
ContactPoint contact = collision.contacts[0];
Quaternion rot = Quaternion.FromToRotation(Vector3.up, contact.normal);
Vector3 pos = contact.point;
Instantiate(explosionPrefab, pos, rot);
Destroy(gameObject);
}
}