Здравствуйте! Сегодня мы продолжим создавать платформер на Unity3D. На сей раз будет разбор анимации, а именно как её создать и реализовать.
Для начала давайте создадим отдельную папку для анимаций (Animations). Далее нам надо пройти в Window\Animation\Animation (или нажать сочетание клавиш Ctrl+6):
Итак, у Вас открылось окно, чтобы начать с ним работать, нужно выбрать объект, которому мы хотим добавить анимацию, в окне Иерархии. Затем нажмите Create и назовите анимацию. Начнём с передвижения:
Давайте перенесём наши спрайты (кадры) на панельку с временной шкалой. Чтобы сделать это более просто, выберите 1 кадр и с зажатым Shift'ом нажмите на последний: так у Вас выберутся все кадры между этих спрайтов. Нажмите на Play и взгляните на своего персонажа в окне Сцены: он шевелится. Но если он оказался маленьким, значит вы забыли поменять Pixels Per Unit у спрайтов.
Если персонаж движется слишком быстро или слишком медленно, поменяйте значение Samples (чем больше, тем быстрее).
Итак, у нас получилась анимация движения вправо, но нам нужно и влево. Для этого создадим новую анимацию, перенесём те же кадры, но добавим свойство Flip X:
Теперь добавьте остальные анимации самостоятельно.
Дальше открываем Animator, удаляем все созданные нами анимации, и добавляем Blend Tree:
Т.к. у нас персонаж может двигаться по вертикали и горизонтали, выбираем Blend Type как 2D Simple Directional, создаём 2 параметра типа float X и Y и добавляем столько полей, сколько у нас анимаций:
Итак, у вас есть координатная плоскость. Установите координаты точек:
Дальше обращаемся уже к коду.
Добавляем animator, чтобы мы могли взаимодействовать с редактором Unity, а именно а анимациями, и lookDirection, чтобы знать, куда "смотрит" наш персонаж (если он будет стоять, то взгляд будет вправо):
Ну и добавим еще 5 строк в Update:
Сейчас все разберём:
- Здесь мы объявляем переменную Vector2, чтобы отслеживать нажатия по горизонтали
- На lookDirection устанавливается вектор нашего движения
- В animator передаётся "взгляд" персонажа.
Чуть подробнее про "взгляд". По сути мы лишь смотрим на нажатие клавиш движения по горизонтали (они установлены в Unity по умолчанию) и смотрим, движется ли персонаж по вертикали. Затем из этого создаётся вектор с соответствующими координатами и они же передаются в координатную плоскость Аниматора.
Теперь Вы можете проверить Ваши усилия в дейстсвии!
В следующей статье мы научим камеру следить за персонажем и научимся переходить между уровнями.