Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Collider.OnCollisionEnter(Collision)

Параметры

other The Collision data associated with this collision event.

Описание

OnCollisionEnter вызывается, когда этот коллайдер/жесткое тело начинает касаться другого твердого тела/коллайдера.

В отличие от OnTriggerEnter, OnCollisionEnter передается Collision класс, а не коллайдер. Класс Collision содержит информацию, например, о точках контакта и скорости удара. Примечания: События столкновения отправляются только в том случае, если к одному из коллайдеров также присоединено некинематическое твердое тело. События столкновения будут отправляться отключенным MonoBehaviours, чтобы можно было включить поведение в ответ на коллизии.

using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { AudioSource audioSource; void Start() { audioSource = GetComponent<AudioSource>(); } void OnCollisionEnter(Collision collision) { foreach (ContactPoint contact in collision.contacts) { Debug.DrawRay(contact.point, contact.normal, Color.white); } if (collision.relativeVelocity.magnitude > 2) audioSource.Play(); } }

Другой пример:

// Граната // - создает префаб взрыва при ударе о поверхность // - затем уничтожает себя using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { public Transform explosionPrefab; void OnCollisionEnter(Collision collision) { ContactPoint contact = collision.contacts[0]; Quaternion rotation = Quaternion.FromToRotation(Vector3.up, contact.normal); Vector3 position = contact.point; Instantiate(explosionPrefab, position, rotation); Destroy(gameObject); } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3