Amir228
@Amir228

Как сделать механику удара об что то?

Хочу сделать чтобы когда например игрок сбивал врага, его отбрасывала и он получал бы урон. Отбрасывание я знаю как сделать, можно в коде а можно покрутить Rigidbody. Но как сделать получение урона от удара об что то, и так чтобы сила урона зависило от силы удара я не знаю.
  • Вопрос задан
  • 134 просмотра
Решения вопроса 1
@Ezekiel4
Охотник на пиратов и сборщик монолитов
Факт удара можно отследить через CollisionEnter. Скорость - магнитуда вектора движения. А дальше дело за фантазией. В общих чертах как-то так:

using UnityEngine;

public class RigidbodyDamager : MonoBehaviour
{
    public float damageMultiplier = 1.0f; // Множитель урона (для коррекции значения урона)

    private void OnCollisionEnter(Collision collision)
    {
        // Получаем силу удара мяча
        float impactForce = collision.impulse.magnitude;

        // Вычисляем урон в зависимости от силы удара (здесь можно использовать свою формулу)
        float damage = impactForce * damageMultiplier;

        // Применяем урон к объекту, с которым столкнулись (если это противник и имеет компонент здоровья)
        Health health = collision.gameObject.GetComponent<Health>();
        if (health != null)
        {
            health.Damage(damage);
        }
    }
}


Можно сделать как на примере - умножить скорость на некое число. А можно, например, добавить график AnimationCurve и там выставить все нужные значения.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы