Таймеры в static-коде Unity без корутин и сторонних библиотек

В Unity мы привыкли использовать корутины (StartCoroutine) для реализации таймеров и отложенных вызовов. Однако этот подход требует наличия MonoBehaviour, что не всегда удобно. Особенно это становится проблемой, когда логика располагается…

Параллельное программирование и библиотека TPL (Работа с классом Task)

Одна задача может запускать другую - вложенную задачу. При этом эти задачи выполняются независимо друг от друга. Несмотря на то, что здесь мы ожидаем выполнения внешней задачи, но вложенная задача…

Параллельное программирование и библиотека TPL (класс Task)

В основе библиотеки TPL лежит концепция задач, каждая из которых описывает отдельную продолжительную операцию. В библиотеке классов .NET задача представлена специальным классом - классом Task, который находится в пространстве имен System.Threading.Tasks. Данный…

Unity и Zenject(Extenject)

Данная статья является попыткой переварить и упростить 2-часовое видео, материала созданного ребятами из "k-syndicate.school" и предоставленного (за что им огромное спасибо) в свободном доступе: K-Syndicate. ZENJECT (позже EXTENJECT) - Фреймворк с…

Введение в Addressables. Часть 2: Практика

Меняем материал в Skybox с помощью Coroutine В проекте создаем сцену с тремя кнопками. Кнопки будут менять материал скайбокса. Также создаем три материала с Shader Skybox/Panoramic, материалам назначаем серый, зеленый…

Введение в Addressables. Часть 1: Установка

Система адресуемых объектов позволяет разработчику запрашивать ресурс по его адресу. Как только актив (например, префаб) помечен как «адресуемый», он генерирует адрес, который можно вызывать из любого места. Где бы ни…

Получаем данные из квитанции Google в Unity3D

PurchaseEventArgs является составным json объектом, Для наглядности мы будем использовать Unity3D: MiniJSON который декодирует и кодирует простые строки JSON и не предназначен для использования с массивами строк JSON. Поэтому данные…

Смотрим инфу о товаре в приложении для AppStore (Unity)

Иногда полезно понимать какую информацию о товаре можно получить из магазина.В случае Apple AppStore добавим в код приложения след логи: // логирование информации о товаре после покупки Debug.Log("1.0 " +…

Invoke и Time.timeScale

 Time.timeScale = 0.0f останавливает вызов Invoke. Решение - плагин DoTween, Он обеспечивает вызов функции DOVirtual.DelayedCall. Вы можете решить, игнорировать шкалу времени или нет. static Tween DOVirtual.DelayedCall(float delay, TweenCallback callback, bool ignoreTimeScale = true)delay Задержка обратного вызова.callback Обратный…