Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Все Вопросы Мои Вопросы

Как сделать механику парирования в юнити?

UnityРастовая Графика2D

Мой напарник не может разобраться как её сделать с помощью бокс коллайдеров и триггеров.
Нужна помощь, чтобы сделать это хоть как-то.


Комментарии

4
Karamba 3 месяца назад

Правильно ли я понял, что вы создаёте игру наподобие 2д игры флеппи бёрд?
Если да, то данному объекту нужно добавить 2 компонента: Rigidbody 2D и Box Collider 2D.

А так же создать для него собственный скрипт, назови его movePlayer, и в нём прописать следующий код:


using UnityEngine;

public class movePlayer : MonoBehaviour
{
    private Rigidbody2D rb;
    public float force = 7.0f;

    void Awake()
    {
        rb = GetComponent<Rigidbody2D>();
    }

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            rb.AddForce(new Vector2(0, force), ForceMode2D.Impulse);
        }
    }
}
При нажатии на кнопку "Пробел", объект будет взлетать в воздухе.

Name_264 3 месяца назад

Karamba, спасибо конечно, но я имел ввиду парирование, не в смысле парить, а в смысле ставить блок в момент атаки, чтобы отразить удар. В дарк соулс при парировании враги к тому-же ещё и станятся. Ещё раз спасибо что попытался помочь.

Karamba 3 месяца назад

Name_264, Ну я могу лишь предположить как это сделать теоритически...

Когда враг атакует, у него в переменную attacked заносится значение true. А когда заканчивает атаковать, то false.
Примерно такой же смысл и с блоком. Если ты жмёшь кнопку блока, то в твою переменную blocked заносишь true.

Ну а дальше, когда мечь врага входит в область твоего коллайдера, то необходимо смотреть на переменную attacked, и если она true, то смотрим на переменную blocked - и если она true, то выполняем то что тебе нужно.

Name_264 3 месяца назад

Karamba, Спасибо большое)

Гости не могут отвечать на вопросы. Войдите на Сайт или Зарегистрируйтесь