Що таке 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("Завдано шкоди гравцеві.");
}
}
}
Коментарі