4.4 KiB
Raw Blame History

UniTask

Зачем это нужно

UniTask нужен для эффективной async/await-работы в Unity без тяжелого стандартного Task-подхода.

Сравнение официального источника и NuGet

На момент проверки:

  • в официальном репозитории Cysharp/UniTask актуальный release: 2.5.10 от 2024-10-03
  • на nuget.org актуальный пакет UniTask: тоже 2.5.10

Но для Unity это не означает, что пакет нужно ставить через NuGet for Unity.

Официальный README разделяет сценарии так:

  • для Unity: UPM через git URL или unitypackage
  • для .NET Core: NuGet

Дополнительно автор прямо указывает, что .NET Core-версия UniTask является subset по отношению к Unity-версии и не включает Unity-зависимый функционал, завязанный на PlayerLoop.

Вывод для этого проекта:

  • версии на GitHub и NuGet совпадают
  • несмотря на это, для Unity-клиента нужно использовать официальный UPM-канал
  • NuGet for Unity для UniTask в этом проекте не является основным способом установки

Как установить

Предпочтительный способ для Unity-проекта:

  1. Открой Window > Package Manager.
  2. Нажми +.
  3. Выбери Add package from git URL....
  4. Вставь:
https://github.com/Cysharp/UniTask.git?path=src/UniTask/Assets/Plugins/UniTask#2.5.10
  1. Нажми Add.

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

  • импорт unitypackage из Releases

Почему не через NuGet for Unity

NuGet for Unity здесь стоит использовать только если нужен именно .NET-вариант для общего кода вне Unity-клиента.

Для игрового Unity-проекта это плохой основной канал, потому что:

  • официальный Unity-сценарий у автора проходит через UPM
  • NuGet-вариант описан как .NET Core subset
  • Unity-специфичные возможности безопаснее получать из официального Unity-пакета

Как настроить после установки

После импорта дополнительной сложной инициализации обычно не требуется.

Базовые шаги:

  1. Дождись завершения импорта.
  2. Убедись, что проект компилируется.
  3. Проверь, что namespace доступен:
using Cysharp.Threading.Tasks;

Что важно для этого проекта

Официальный README отдельно указывает:

  • у UniTask есть поддержка Addressables
  • у UniTask есть поддержка DOTween

Поддержка Addressables включается автоматически после установки соответствующего пакета, а для DOTween нужна define-константа:

UNITASK_DOTWEEN_SUPPORT

Ее имеет смысл добавлять только после того, как DOTween уже установлен и реально используется.

Минимальная практическая настройка для проекта

Для первого этапа достаточно:

  • установить UniTask через UPM
  • убедиться, что namespace доступен
  • не переводить весь проект на async/await без явной необходимости

Как проверить, что всё настроено

  • пакет установлен без ошибок
  • using Cysharp.Threading.Tasks; распознается
  • проект компилируется после установки

Официальные источники