Что такое OnCollisionStay в Unity C#?
Метод OnCollisionStay вызывается в Unity на каждом кадре, пока объект сталкивается с другим объектом с включенным компонентом Collider и физикой (Rigidbody). Этот метод подходит для обработки логики, которая должна выполняться в течение времени столкновения, например, уменьшение здоровья или проверка условий взаимодействия.
OnCollisionStay
- Постоянное выполнение при столкновении: Вызывается на каждом кадре, пока продолжается столкновение с другим объектом.
- Доступ к информации о столкновении: Метод принимает объект
Collision, содержащий данные о точке контакта, нормали и других характеристиках столкновения. - Не подходит для единоразового взаимодействия: Если требуется выполнить действие только при начале столкновения, используйте метод
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("Нанесен урон игроку.");
}
}
}
Комментарии