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); // Наносим урон игроку
}
}
}
}