Как создать анимацию в Unity

213
02 января 2019, 15:40

Подскажите, как запустить анимацию пушки во время выстрела ядра из нее? Создание и выстрел ядра у меня происходит в методе Shoot(). Не понимаю как запустить анимацию во время срабатывания Shoot().

private void Update() {
    if (Target != null) {
        if (reloadTimer > 0) reloadTimer -= Time.deltaTime;
        if (reloadTimer <= 0)
        {
            Shoot();
        }
        else { Target = SortObj(); }
    } 
} 
void Shoot()
{
    GameObject patronGO = (GameObject)Instantiate(patronPrefab, firePoint.position, firePoint.rotation);
    Bullet patron = patronGO.GetComponent<Bullet>();  
    if (patron != null)
        patron.Finder(Target);
}
Answer 1

Если коротко - вам в коде нужна ссылка на компонент Animator Controller, который висит на пушке. В самом аниматоре должны быть настроены переходы между анимациями по определённым условиям. Например, если есть триггер Shoot, то нужно проиграть анимацию ShootAnimation.

После чего из кода вам нужно делать _animator.SetTrigger("Shoot"); в момент выстрела, где _animator - ссылка на компонент аниматора пушки.

На самом деле тема комплексная и полный ответ будет довольно велик. Поэтому советую вам посмотреть короткий ролик от Unity, в котором они учат из кода управлять аниматором.

Там есть субтитры, которые довольно качественно переводятся встроенными средствами на русский язык. Да и без субтитров вполне можно смотреть, просто повторяя действия из ролика.

READ ALSO
Цикл по переменным

Цикл по переменным

Что есть:

170
Парсинг типа данных PointF

Парсинг типа данных PointF

Добрый день!Мне необходимо пропарсить PointFМетод Parse не подходит

173
Переменные и база данных с локализацией

Переменные и база данных с локализацией

Я новичокЕсть следующий код:

168
Скажите как правильно подключить две ViewModel

Скажите как правильно подключить две ViewModel

Всем здравствуйтеЕсть у меня TabControl с двумя вкладками

184