🌟 Твины и альтернативы DOTween 🌟

🌟 Твины и альтернативы DOTween 🌟

Уровень материала: 🐣 #junior

DOTween – один из самых популярных инструментов для твинов в Unity. Но не единственный. Расскажу, какие ещё есть варианты. Перед этим — краткая справка про то, что это и зачем.

Про твины

Твины – это программируемый способ анимировать свойства объекта через интерполяцию, т.е. изменение свойств со временем от одних заданных значений к другим по заданным правилам (они же - функции плавности или Ease) (примеры).

Твин-библиотеки (типа DOTween) предоставляют большой багаж готовых команд для быстрой и простой реализации таких анимаций. Также такие анимации удобно комбинировать и выстраивать из них цепочки.

Использовать твины можно, где угодно, но чаще твины используют для UI. Там анимации довольно однотипные и простые.

  • Такие анимации удобнее реализовать программно, чем через Animator.
  • Animator — сам по себе, не очень легковесный инструмент.
  • У Canvas есть некоторые особенности в отрисовке, из-за чего использование Animator будет приводить к перерисовке всего Canvas каждый кадр, независимо от того, меняется ли реально что-то на Canvas'е или нет.

Про DOTween

DOTween — самое популярное решение с большим коммьюнити и кучей учебных материалов. Но:

  • Менее производителен и аллоцирует больше памяти, чем конкуренты.
  • Занимает больше места в билде, чем аналоги.
  • В бесплатной версии доступен не весь функционал: нет расширений для TextMeshPro, нет визуального редактора и ряд менее значимых моментов.

Но для «но»:

  • Для большинства разница не будет критической.
  • Размер важен разве что для веб-разработки.
  • Визуальный редактор не шибко нужен, но и реализовать его самостоятельно несложно. А любые доп. методы расширения можно сделать самому через универсальный метод DOTween.To(...).

Получается, что острой необходимости от DOTween отказываться нет. Но если душа просит приключений или проект «с особенностями», то выбрать есть из чего.

Альтернативы

Их очень много. Это не удивительно – собрать свой собственный твиннер «на коленке» не так уж и сложно (видео-пример). А вот эффективный и удобный – уже задачка.

Раньше пользовались популярностью LeanTween , iTween и Unity Tween, но они уже немного устарели.

Современные аналоги кичатся более эффективной работоспособностью, минимумом аллокаций, наличием визуальных инструментов настройки и отладки и поддержкой UniTask.

Наиболее популярные из них: PrimeTween, MagicTween и его наследник LitMotion.

PrimeTween — наверное самый используемый среди конкурентов. Из интересных удобств: поддерживает AnimationCurve в качестве Ease.

LitMotion — самый эффективный. Поддерживает работу с UniRx и R3. Синтаксис сильно отличается от DOTween, но я нахожу его более лаконичным и простым.

Если размер библиотеки является критически важным, то есть и крайне легковесные решения, которые умещаются в один файл. Например TinyTween.

————————————

33
11
7 комментариев

Всегда использовал PrimeTween. Он бесплатный, быстрый, сравнительно удобнее аналогов. Особенно когда дело касается создания целых секвенций, ему нет аналогов. Ах да, ещё и обновляется постоянно

2

Да, отличный пакет 🔥

Мне ещё очень нравится та простота, с которой можно выносить настройки твинов в инспектор.

Правда в плане секвенций тот же LitMotion предлагает идентичный опыт. Другие решения могут уступать в удобстве, но функционально — это достаточно базовая фича для большинства актуальных твиннеров 👀

А я свой велосипед пишу. 👉👈

1

Так делать очень полезно — помогает глубже разобраться в вопросе и лучше оценивать имеющиеся на рынке решения 👍

Да и кто знает — может этот велосипед однажды поедет в OpenSource и будет с удовольствием рулиться другими разработчиками 😊

1

Не хватает инфы про ценник и что доступно в платной/бесплатной версиях.

Все слова DOTween пролинкованы и ведут на офицальный сайт, где есть вся информация.

Что доступно в платной версии из важного — указано.

Пост не про DOTween, по нему и так уже имеется невероятное кол-во контента, а про альтернативные решения. Они все open-source и распространяются бесплатно