OnTrigger события
Коллайдеры с триггерами не вызывают столкновения. Вместо этого они обнаруживают другие коллайдеры, которые проходят через них, и вызывают функции, которые можно использовать для инициирования событий.
Примеры использования триггеров:
- Когда игрок достигает определенной зоны в конце коридора, активируйте кинематографическую сцену.
- Когда персонаж игрока проходит в пространстве перед раздвижной дверью, запустить анимацию, чтобы открыть дверь.
- При прохождении снарядов через коллайдер на большом расстоянии обезвреживать или уничтожать снаряд.
Работа с триггерными коллайдерами в основном включает следующие функции API:
Collider.OnTriggerEnter: Unity вызывает эту функцию на коллайдере-триггере, когда он впервые контактирует с другим коллайдером.Collider.OnTriggerStay: Unity вызывает эту функцию на коллайдере триггеров один раз в кадре, если он обнаруживает другой Collider внутри коллайдера триггеров.Collider.OnTriggerExit: Unity вызывает эту функцию на коллайдере-триггере, когда он прекращает контакт с другим коллайдером.
Следующий пример отображает сообщение в Консоль при вызове каждой функции Unity.
using UnityEngine;
using System.Collections;
public class DoorObject : MonoBehaviour
{
// “other” refers to the collider on the GameObject inside this trigger
void OnTriggerEnter (Collider other)
{
Debug.Log ("A collider has entered the DoorObject trigger");
}
void OnTriggerStay (Collider other)
{
Debug.Log ("A collider is inside the DoorObject trigger");
}
void OnTriggerExit (Collider other)
{
Debug.Log ("A collider has exited the DoorObject trigger");
}
}
Для примеров практического применения событий OnTrigger см. Примеры скриптов для событий коллайдера.