Simple animations for UI elements or other objects
Часто при дизайне UI в Unity бывает необходимо сделать простую анимацию для некоторых элементов, например, прыгающий указатель или масштабирующаяся кнопка. Данный мини-проект решает эту проблему, давая дизайнеру UI возможность быстро настраивать такие анимации. Помимо элементов UI можно анимировать и другие объекты.
В проекте содержится 4 компонента анимирующие объект: Mover
, Rotator
, Scaler
, SpriteCycler
.
Перечень общих свойств:
- Duration - Продолжительность анимации в секундах. Не может быть меньше или равно 0.
- StartTime - Значение от 0 до 1, определяет с какого места начинается анимация после старта в диапазоне от 0 до Duration
- RandomStartTime - При старте запускает анимацию с рандомного места, игнорируя значение StartTime.
- PlayOnEnable - Если true, автоматически воспроизводит анимацию когда объект активируется.
- IsRelative - Если true, то определяет позицию и поворот относительно исходного положения.
- UpdateMode - Определяет по какому из событий Unity обновляется состояние анимации. Значение Manual подразумевает ручной вызов метода
ManualUpdate(float deltaTime)
- Count - Количество циклов анимации после старта, значение меньше 0 означают бесконечный повтор.
- LoopMode - Поведение анимации при переходе на новый цикл. Значение Restart перезапускает анимацию с начала, Yoyo запускает анимацию в обратном порядке.
- Curve - Кривая анимации
- YoyoCurve - Применяется в связке с LoopMode.Yoyo, при значении true запускает кривую в обратном направлении каждый новый цикл.
Вы так же можете сделать кастомную анимацию, для этого нужно создать скрипт унаследованный от SimpleAnimationBase
.
Основные методы для переопределения:
abstract void Do(float t)
- вызывается при каждом обновлении анимации и передает значение t в диапазоне от 0.0 до 1.0.virtual void Init()
- вызывается при инициализации SimpleAnimationBase.
Для управления анимациями существует 4 публичных метода: StartAnimatiion
, StopAnimation
, PauseAnimation
, ResumeAnimation
. Эти методы можно вызывать как из кода, так и кликнув ПКМ по компоненту.