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

    @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 и там выставить все нужные значения.
    Ответ написан
    2 комментария
  • Какие есть хорошие курсы по С#(платные/бесплатные)?

    Для начинающих - ulearn.me
    Для продолжающих - learn.microsoft.com и metanit

    А деньги лучше на что-нибудь материальное потратьте
    Ответ написан
    Комментировать
  • Что не так с агентом в Unity?

    Figma-designer
    @Figma-designer
    Вам надо поменять ориентацию модели (извините, я работаю с 3D, так что детали могут отличаться). В 3D координаты Unity это +X вперед, +Y вверх. Агент всегда двигается по X вперед, соответственно, ваши объекты изначально смотрят не в ту сторону
    Ответ написан
    3 комментария