Version: 5.3 (switch to 5.4b)
ЯзыкEnglish
  • C#
  • JS

Язык программирования

Выберите подходящий для вас язык программирования. Все примеры кода будут представлены на выбранном языке.

Collision.contacts

Предложить изменения

Успех!

Благодарим вас за то, что вы помогаете нам улучшить качество документации по Unity. Однако, мы не можем принять любой перевод. Мы проверяем каждый предложенный вами вариант перевода и принимаем его только если он соответствует оригиналу.

Закрыть

Ошибка внесения изменений

По определённым причинам предложенный вами перевод не может быть принят. Пожалуйста <a>попробуйте снова</a> через пару минут. И выражаем вам свою благодарность за то, что вы уделяете время, чтобы улучшить документацию по Unity.

Закрыть

Отменить

Руководство
public var contacts: ContactPoint[];
public ContactPoint[] contacts;

Описание

Точки соприкосновения сгенерированные физическим движком.

Каждый контакт содержит точку соприкосновения, нормаль и два сталкивающихся коллайдера (см. ContactPoint). From inside OnCollisionStay or OnCollisionEnter you can always be sure that contacts has at least one element.

	function OnCollisionStay(collision : Collision) {
		for (var contact : ContactPoint in collision.contacts) {
			print(contact.thisCollider.name + " hit " + contact.otherCollider.name);
			// Visualize the contact point
			Debug.DrawRay(contact.point, contact.normal, Color.white);
		}
	}
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); } }