ドキュメント

Unity Engine

Unity Engine

contacts

The contact points generated by the physics engine. You should avoid using this as it produces memory garbage. Use Collision.GetContact or Collision.GetContacts instead.
読み終わるまでの所要時間 1 分最終更新 1ヶ月前

Definition

  • Type: Property
  • Namespace: UnityEngine
  • Assembly: UnityEngine.PhysicsModule
public ContactPoint[] contacts { get; }

Remarks

Every contact contains a contact point, normal and the two colliders that collided (see ContactPoint). From inside Collider.OnCollisionStay(Collision) or Collider.OnCollisionEnter(Collision) you can always be sure that
contacts
has at least one element.

Examples

using UnityEngine;public class ExampleScript : MonoBehaviour{ void OnCollisionStay(Collision collision) { foreach (ContactPoint contact in collision.contacts) { print(contact.thisCollider.name + " hit " + contact.otherCollider.name); // Visualize the contact point Debug.DrawRay(contact.point, contact.normal, Color.white); } }}
// A grenade// - instantiates an explosion Prefab when hitting a surface// - then destroys itselfusing 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); }}