127 lines
6.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# DOTween
## Зачем это нужно
`DOTween` нужен для tween-анимаций объектов, UI и значений без написания собственных систем интерполяции с нуля.
## Сравнение официального источника и NuGet
На момент проверки расхождение между каналами очень большое:
- на `nuget.org` пакеты `DoTween`, `DoTween_Unity` и `DoTween_Unity_Editor` имеют версию `1.0.0` и дату обновления `2020-04-07`
- на официальном сайте DOTween в update notes уже фигурирует `v1.2.825`
- в официальном support-разделе отдельно указано, что special upgrade path нужен для free-версий старее `1.2.815`
Вывод для этого проекта однозначный:
- `NuGet for Unity` для `DOTween` использовать не нужно
- NuGet-пакеты сильно устарели относительно официального дистрибутива
- основной канал должен быть только официальный сайт DOTween или Asset Store для Pro-версии
## Как установить
Официальный способ:
1. Скачай актуальный `DOTween` из официального источника.
2. Распакуй содержимое в папку `Assets/` проекта.
По официальной инструкции пакет не нужно класть внутрь `Editor` или `Resources`.
## Как настроить после установки
После импорта пакет нужно обязательно прогнать через setup:
1. Открой `Tools > Demigiant > DOTween Utility Panel`.
2. Нажми `Setup DOTween...`.
Этот шаг нужен для переимпорта дополнительных библиотек и включения модулей под текущий проект.
## Частая ошибка: `DOTweenModuleEPOOutline.cs`
Если после импорта появляются ошибки вида:
```text
Assets/.../DOTween/Modules/DOTweenModuleEPOOutline.cs(5,7): error CS0246: The type or namespace name 'EPOOutline' could not be found
Assets/.../DOTween/Modules/DOTweenModuleEPOOutline.cs(...): error CS0246: The type or namespace name 'SerializedPass' could not be found
```
это означает, что в проект попал optional-модуль интеграции с `Easy Performant Outline`, но самого пакета `EPO Outline` в проекте нет.
Что важно для текущего проекта:
- в `Assets/Resources/DOTweenSettings.asset` модуль `epoOutlineEnabled` должен быть выключен
- если ошибка всё равно появляется, значит модульный файл не был корректно переписан после setup или у проекта остался активный define для `EPO`
### Как исправить
Если `EPO Outline` тебе не нужен:
1. Открой `Tools > Demigiant > DOTween Utility Panel`.
2. Убедись, что интеграция `EPO Outline` выключена.
3. Повтори `Setup DOTween...`.
4. Если ошибки не исчезли, закрой Unity и открой проект снова.
5. Если после повторного setup файл всё равно компилируется, временно удали или перемести из проекта файл:
```text
Assets/External/Packages/DOTween/Modules/DOTweenModuleEPOOutline.cs
```
Это безопасно, если пакет `Easy Performant Outline` в проекте не используется.
Если `EPO Outline` действительно нужен:
1. Сначала установи сам пакет `Easy Performant Outline`.
2. Только после этого включай соответствующий модуль в `DOTween Utility Panel`.
3. Повтори `Setup DOTween...`.
### Практическое правило
Для всех optional-модулей `DOTween` действует одно и то же правило:
- сначала ставится внешний пакет-зависимость
- потом включается интеграционный модуль в `DOTween`
Не наоборот.
## Что важно для этого проекта
С учетом наличия `NuGet for Unity` в проекте не нужно пытаться унифицировать `DOTween` через NuGet.
Причины:
- официальный Unity-сценарий у `DOTween` идет через импорт ассетов
- пакет содержит editor tooling и setup pipeline
- NuGet-канал для него устарел и не отражает актуальную версию
Если позже в проекте появится `UniTask`, для интеграции с ним может понадобиться define:
```text
UNITASK_DOTWEEN_SUPPORT
```
Но добавлять его нужно только после реальной установки `DOTween`.
## Минимальная практическая настройка для проекта
Для текущего проекта на первом этапе достаточно:
- установить актуальный `DOTween` из официального источника
- выполнить `Setup DOTween`
- проверить, что проект компилируется
Если в проекте уже используется `UGUI`, имеет смысл убедиться, что нужный модуль UI активирован.
## Как проверить, что всё настроено
- в Unity есть меню `Tools > Demigiant`
- `DOTween Utility Panel` открывается
- `Setup DOTween...` проходит без ошибок
- после добавления `using DG.Tweening;` в скрипт проект не ругается на отсутствие namespace
## Официальные источники
- https://dotween.demigiant.com/getstarted.php
- https://dotween.demigiant.com/support.php
- https://dotween.demigiant.com/download.php
- https://www.nuget.org/packages/DoTween