Урок 1. Создание анимации в Unity с помощью Animation.
Добрый день. В этом уроке мы научимся создавать анимированные ролики и управлять ими с помощью компонента Animation. Для начала откройте свой объект и создайте два объекта: Sphere и Plane, создадим для них материалы и добавим их к объектам (если Вы еще не умеете этого делать, то рекомендую вначале прочитать введение в Unity).
Теперь давайте добавим компонент Animation к нашей сфере. Для этого выберем наш объект и в инспекторе нажмем Add Components и затем через поиск наберем animation, а затем выберем его(Скриншот №2)
После этого откроем вкладку Animation(в верхнем меню вкладка Window/ Animation/ Animation, либо просто нажмите Ctrl+6 и за ярлык перетащите её туда, где вам будет удобнее) и создадим новый клип. Для этого во вкладке Animation нажмем Create, укажем путь, где хотим сохранить и имя нашей анимации(я создал с именем AnimSphere).
Создав файл, перейдем к нему и начнем анимировать наш объект. для начала выставьте нашу сферу по оси y на отметку 4, затем нажмем на запись и на шкале времени на отметке 0.2 секунды поменяем нашу высоту сферы на 0.5, теперь передвинемся еще на 0.05 и выставим нашу высоту на 0.75 и в Scale сожмем объект по оси н до 0,75(Так как мы не добавляли ключи положения по Scale вернитесь на шкале на отметку 0.20 и поставьте там 1, тогда у нас деформация объекта начнется с этого момента)(Скриншот 4).
Всё готово. Теперь давайте её настроим так, чтобы она срабатывала при запуске проекта, для этого в компоненте Animation добавить наш файл для проигрывания его по умолчанию и убедимся, что поставлена галочка в опции PlayAutomatically, а так же у нашего файла выставить в настройках Ping Pong(это нужно для того, чтобы анимация проигрывалась циклично с реверсом).
Теперь давайте создадим скрипт и назовем его AnimSphere. Сделаем в нем условие для запуска и остановки проигрывания при нажатии кнопки. Отключим PlayAutomatically в компоненте Animation и прикрепим к сфере наш скрипт. Затем откроем наш скрипт и создадим переменную (anim), а так же в методе старт прикрепим к ней наш компонент Animation.
Создадим в методе Update() 2 условия с проверкой на нажатие клавиш пробел и С и. Если нажата первая клавиша, то запускаем проигрывание с помощью команды anim.Play(“AnimSphere”);. При нажатии второй кнопки останавливаем проигрывание с помощью команды anim.Stop(“AnimSphere”);. Обязательно проверяйте имя в кавычках, чтобы оно совпадало с именем прикрепленной анимации к нашему компоненту.
Запустив наше приложение проверьте как работает. Есть одна загвоздка, при запуске, после остановки, она начинает проигрываться заново и если Вам после остановки опять нужно будет запускать проигрывание, то лучше использовать другой способ с остановкой скорости воспроизведения. Для этого в методе старт установим скорость воспроизведения равной о с помощью команды anim[“AnimSphere”].speed = 0f;, а так же перенесем сюда запуск анимации. В методе Update() заменим строчки запуска и остановки анимации ту же строчку что и в методе Start(). При запуске выставляем значение 1 а при остановке оставляем 0. Вот и все. Теперь наша анимация будет проигрываться с того места, где остановилась. Такой метод подойдет например для создания движущихся платформ, открывания дверей и т.п. где не нужно применять сложную анимацию.