Unity C#

OnTriggerStay в Unity C#: непрерывное пересечение триггера

Метод OnTriggerStay в Unity вызывается каждый кадр, пока другой объект находится внутри триггер-коллайдера. Подходит для логики, которая должна работать всё время, пока объект в зоне.

Особенности

  • Триггер-коллайдер: работает с коллайдерами, у которых включён Is Trigger.
  • Постоянный вызов: срабатывает каждый кадр, пока объект внутри триггера.
  • Обработка взаимодействий: проверка состояний, урон, подсказки, анимации.

Пример кода

Пока игрок в триггере, ему каждый кадр наносится урон:

using UnityEngine;

public class TriggerExample : MonoBehaviour
{
    private void OnTriggerStay(Collider other)
    {
        // Проверяем, является ли объект игроком
        if (other.CompareTag("Player"))
        {
            Debug.Log("Игрок находится внутри триггера.");

            // Пример взаимодействия
            Player player = other.GetComponent<Player>();
            if (player != null)
            {
                player.TakeDamage(5 * Time.deltaTime); // Наносим урон игроку
            }
        }
    }
}