• Collision 碰撞
    • 示例:
    • ContactPoint 接触点

    Collision 碰撞

    描述碰撞

    碰撞信息被传递给Collider.OnCollisionEnter, Collider.OnCollisionStay和Collider.OnCollisionExit这些事件。

    变量说明
    collider被碰撞的那个碰撞器(只读)。
    contacts物理引擎生成的碰撞点集。
    gameObject被碰撞的碰撞器所在的游戏对象(只读)。
    impulse应用在接触解决的碰撞的总的推动力。
    relativeVelocity两个碰撞的对象之间的相对线性速度(只读)。
    rigidbody被碰撞的刚体组件(只读)。当这个对象碰撞到一个没有被附加刚体组件的碰撞器时返回null。
    transform我们碰撞的对象的变换(只读)。

    示例:

    Collision.contacts 接触点

    物理引擎生成的碰撞点集。

    1. using UnityEngine;
    2. using System.Collections;
    3. public class ExampleClass : MonoBehaviour {
    4. void OnCollisionStay(Collision collision) {
    5. foreach (ContactPoint contact in collision.contacts) {
    6. print(contact.thisCollider.name + " hit " + contact.otherCollider.name);
    7. Debug.DrawRay(contact.point, contact.normal, Color.white);
    8. }
    9. }
    10. }
    1. using UnityEngine;
    2. using System.Collections;
    3. public class ExampleClass : MonoBehaviour {
    4. public Transform explosionPrefab;
    5. void OnCollisionEnter(Collision collision) {
    6. ContactPoint contact = collision.contacts[0];
    7. Quaternion rot = Quaternion.FromToRotation(Vector3.up, contact.normal);
    8. Vector3 pos = contact.point;
    9. Instantiate(explosionPrefab, pos, rot);
    10. Destroy(gameObject);
    11. }
    12. }

    ContactPoint 接触点

    描述碰撞发生位置的一个接触点。

    碰撞点被存储在碰撞对象中。参见:Collision

    变量说明
    normal接触点的法向量。
    otherCollider其他相关联的碰撞器。
    point接触的点。
    thisCollider第一个相关联的碰撞器。

    ?