Unity 6.3
0 онлайн 72 гостей 3 в системе
Вход
Физика Шаг 48 из 99

OnCollision события

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

Примеры использования для столкновений включают:

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

Работа с столкновениями в основном включает следующие функции API:

  • Collider.OnCollisionEnter: Unity вызывает эту функцию на каждом коллайдере, когда два коллайдера впервые соприкасаются.
  • Collider.OnCollisionStay: Unity вызывает эту функцию на каждом коллайдере один раз за обновление физики, пока два коллайдера находятся в контакте.
  • Collider.OnCollisionExit: Unity вызывает эту функцию на каждом коллайдере, когда два коллайдера прекращают контакт.

В случае столкновений по крайней мере один из объектов должен иметь динамическое физическое тело (т.е. Rigidbody или ArticulationBody которая имеет Кинематическое Если оба GameObjects в столкновении являются кинематические физические тела, столкновение не вызывает OnCollision функции.

Следующий пример отображает сообщение в консоли при вызове каждой функции Unity.

using UnityEngine;
using System.Collections;

public class DoorObject : MonoBehaviour
{
    // “other” refers to the collider that is touching this collider
    void OnCollisionEnter (Collision other)
    {
        Debug.Log ("A collider has made contact with the DoorObject Collider");
    }

    void OnCollisionStay (Collision other)
    {
        Debug.Log ("A collider is in contact with the DoorObject Collider");
    }
    
    void OnCollisionExit (Collision other)
    {
        Debug.Log ("A collider has ceased contact with the DoorObject Collider");
    }
}

Для примеров практического применения событий OnCollision, см. примеры скриптов для событий коллайдера.

Дополнительные ресурсы