Справочники Unity C# OnCollisionStay

Что такое OnCollisionStay в Unity C#?

Метод OnCollisionStay вызывается в Unity на каждом кадре, пока объект сталкивается с другим объектом с включенным компонентом Collider и физикой (Rigidbody). Этот метод подходит для обработки логики, которая должна выполняться в течение времени столкновения, например, уменьшение здоровья или проверка условий взаимодействия.


Основные характеристики метода OnCollisionStay
  1. Постоянное выполнение при столкновении: Вызывается на каждом кадре, пока продолжается столкновение с другим объектом.
  2. Доступ к информации о столкновении: Метод принимает объект Collision, содержащий данные о точке контакта, нормали и других характеристиках столкновения.
  3. Не подходит для единоразового взаимодействия: Если требуется выполнить действие только при начале столкновения, используйте метод OnCollisionEnter.
using UnityEngine;

public class DamageZone : MonoBehaviour
{
    private int damagePerSecond = 10;

    // Метод OnCollisionStay вызывается, пока объект находится в состоянии столкновения
    void OnCollisionStay(Collision collision)
    {
        // Проверяем, есть ли у другого объекта компонент Player
        Player player = collision.gameObject.GetComponent<Player>();
        if (player != null)
        {
            // Уменьшаем здоровье игрока
            player.TakeDamage(damagePerSecond * Time.deltaTime);
            Debug.Log("Нанесен урон игроку.");
        }
    }
}
Комментарии
Добавить комментарий

Пока комментариев нет