Buffer icon Проекты
135 заметок с тегом

unity

Позднее Ctrl + ↑

Unity EventBus на интерфейсах

public class SaveLoadManager : Monobehaviour, IQiuckSaveHandler
{
    private void OnEnable()
    {
        EventBus.Subscribe(this);
    }

    private void OnDisable()
    {
        EventBus.Unsubscribe(this);
    }

    private void HandleQuickSave()
    {
        // код сохранения
        ...
    }
}

Интересная реализация системы событий для Unity. В качестве ключа для подписки выступает интерфейс. Несколько лет назад, я писал про простой менеджер событий, но этот вариант выглядит по-лучше. Но нужно не забывать отписываться, чтобы избежать утечек. Как правильно в комментах заметили, можно использовать WeakReference, например.

Unity & iOS capabilities

iOS capabilities list

iOS capabilities list

iOS capabilities list

Как оказалось, даже для последних версий Unity, есть проблема программно выставить нужные параметры в Xcode проекте :( А это необходимость, иначе никакой CI\CD не работает и придётся билдить iOS версию вручную, что конечно не очень правильно.

Для этих целей в Unity есть специальный PostProcessBuildAttribute и PBXProject. После билда в Xcode проект, можно настраивать уже другие параметры, не доступные внутри Unity. Но, даже следуя мануалам, как-то оно не всё работает...

Так, например, чтобы добавить функцию Sign in with Apple, нужно воспользоваться ProjectCapabilityManager. В коде это выглядит примерно так:

...
string projectPath = string.Format ("{0}/Unity-iPhone.xcodeproj/project.pbxproj", path);
PBXProject project = new PBXProject ();
string file = File.ReadAllText (projectPath);
project.ReadFromString (file);
string target = project.GetUnityMainTargetGuid ();
string entFile = "game.entitlements";
ProjectCapabilityManager manager = new ProjectCapabilityManager (projectPath, entFile, "Unity-iPhone", target);
manager.AddSignInWithApple ();
// other capabilities
manager.WriteToFile ();

Но таким образом файл X.entitlements не добавляется в проект, создаётся, но не добавляется. И через project.AddFile() — тоже. Спасает как всегда stackoverflow :) Оказывается, помимо project.AddFile() надо добавить ещё специальный property, чтобы всё закрутилось:

...
project.AddFile (entFile, entFile);
project.AddBuildProperty (target, "CODE_SIGN_ENTITLEMENTS", entFile);
File.WriteAllText (projectPath, project.WriteToString ());

Почему это не написано в мануале Unity — непонятно.

 Нет комментариев    850   2020   ios   unity   разработка   с#

Кастомные шрифты в UnityMobileInput

Обновил плагин UnityMobileInput.

Теперь можно использовать свои шрифты в нативном поле ввода. Просто копируете TTF шрифт в проект, в папку StreamingAssets, дальше плагин всё сделает сам: скопирует в папку приложения на Android или iOS и применит для нужного поля ввода.

Также, был баг (фича), что при тапе по экрану клавиатура исчезала, это её нормальное поведение, в общем-то. Но иногда надо чтобы она оставалась видимой даже если на что-то жмёшь. Теперь есть такая опция.

Топ-10 ошибок в оптимизации Unity

Хороший вебинар от юнитеков, рассмотрены частые ошибки совершаемые при оптимизиции, обзор инструментов по оптимизации, примеры с пояснениями. Рекомендую.

Sign in with Apple, Google Sign-In и Unity

Sign in with Apple and Unity

Sign in with Apple and Unity

Sign in with Apple and Unity

Решили мы сделать «доброе» дело нашим пользователям: позволить и на Android и на iOS использовать Google Sign-In и Sign in with Apple, и там и там.

Пришлось немного поковыряться, но получилось! Плагин для Unity работает. Разобраться во всём помогли две статьи:

Плагин из примера на Kotlin, переписал на Java, так привычней, но наверное, уже пора осваивать и его... :( Apple не сделали SDK для других платформ, так что там всё не красиво, но работает. У Google, прописываешь в pod файл Google Sign-in и используешь.

В общем, mission complete. Если есть вопросы, пишите.

 4 комментария    1906   2020   android   apple   ios   plugin   unity   разработка

Unity Learn Premium for free

Unity Learn Premium for free

Unity Learn Premium for free

Unity Learn Premium for free

Там Unity Learn Premium, с кучей материалов для обучения, теперь полностью бесплатный.

Весной они объявили свободный доступ к материалам, а теперь сделали его бесплатным вроде как для всех и навсегда.

Вообще, многие уроки — такие себе... Вроде читаешь заголовок, думаешь сейчас всё узнаешь про оптимизацию UI и профайлер, а там 2 скриншота и 3 абзаца. И таких «уроков» много. Но в любом случае, материалы полезные и каждый наверняка найдет для себя что-то стоящее.

 Нет комментариев    1107   2020   unity   ссылки

Градиентный текст в Unity

В пакете TextMeshPro уже есть встроенная градиентная заливка, но для моей задачи она не совсем подходила, потому что работает для каждого символа отдельно. Выглядит это так:

Градиент для каждой буквы

Градиент для каждой буквы

Градиент для каждой буквы

Пришлось написать небольшой скрипт, который вешается на текстовый компонент, берёт цвета градиента из свойств и применяет его для всего текста. Стало выглядеть так:

Градиент для всего текста

Градиент для всего текста

Градиент для всего текста

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

Исходник

Теперь будет гуглится по full text gradient unity :)

Unity 2020 Roadmap. Обзор.

Unity выпустила новую презентацию для 2020 версии. Вроде как собираются делать работу над ошибками, поглядим. Перезагрузил презу к себе, потому что SlideShare заблокирован в России, могут возникнуть проблемы и выбрал самые интересные моменты для вас.

Кстати, весь roadmap доступен по адресу https://unity3d.com/ru/unity/roadmap

И так что же нас ожидает в Unity:

  • Версия 2019.4 будет LTS.
  • Начиная с 2020 версии будет по 3 релиза в год (2020.3 будет LTS, 2021.3 — тоже).
  • Всё будет переводится на DOTS рельсы (сеть, анимация, физика), процесс уже давно запущен.
  • Унифицированный менеджер ассетов, с поиском, фильтрами и прочее, с возможностью подгружать библиотеки и ассеты из собственных npm репов.

Unity assets manager

Unity assets manager

Unity assets manager
  • Обновление и улучшения профайлеров: Profile, Frame Debugger, Physics Debugger, UIElements Debugger, IMGUI.. Профайлер можно запустить, как отдельный процесс. Если вы используете Job System, то с 2020.1 сможете увидеть что происходит внутри с помощью нового инструмента. Документацию вроде тоже обновили.

Updated Unity profiler

Updated Unity profiler

Updated Unity profiler
  • Про инструменты для 2D уже писал, это уже доступно. В версии 2020 всё это обещают причесать и пофиксить баги.
  • К Burst Compiler добавятся новые инструменты дебага. Используя встроенный отладчик, подключенный к Unity, можно будет проверять стеки вызовов, переменные, потоки, ставить точки останова и прочее.
  • Возможно к LTS версии допилят наконец визуальное программирование, но это не точно, пока всё ещё разработке.

Unity visual programming

Unity visual programming

Unity visual programming
  • Новый редактор и тему которые появились в 2019.3 будут дорабатывать и улучшать, фиксить ошибки. В будущих версиях обещают новый «воркфоу» :) Возможно появятся какой-нибудь мультиоконный, мультидокументный режимы. Также будут шаблоны сцен (как пакет), увеличение скорости работы с префабами.

Сейчас вместо «папок» используют обычно пустые объекты, но как известно, чем меньше объектов, тем лучше.

  • Улучшение инспектора, разные режимы вставки и копирования объектов. Превью мешей, текстур, управление списками и массивами, папки в иерархии! — в разработке.
  • Перед полным переходом на DOTS, будет выпущено много обновлений в том числе и для анимации. Новая же система DOTS анимации, гибкая, производительная и легкая в использовании (так говорят), кроме того, её можно полностью заскриптовать.

  • Про ProBuilder и Polybrush тоже не забыли, обновятся и они. В террейне теперь можно делать дырки, ага :)

Unity building tools

Unity building tools

Unity building tools
  • Начиная с 2019.3, и версии 7.2.0 Visual Effect Graph больше не превью, это гарантирует стабильность и поддержку основных платформ. Одним из важных моментов является то, что по сравнению с Unity 2020.1 сократилось время загрузки шейдеров примерно на 50%.

Visual Effect Graph

Visual Effect Graph

Visual Effect Graph
  • Новая UI система развивается. UI Builder предоставляет знакомый опыт создания пользовательского интерфейса. Пишут, что будет достаточно легко адаптироваться к созданию UI на новый лад. Похожий на CSS синтаксис даёт много возможностей для создания динамичных и красивых интерфейсов. Также, обещают поддержку векторной графики, чтобы всё это выглядило перфекто на разных разрешениях экрана.

New Unity UI system UIElements

New Unity UI system UIElements

New Unity UI system UIElements
  • Добавятся всякие Machine Learning штучки, чтобы поиграться
  • Обновленный аудио/видео стек, можно записывать видео и делать гифки из редактора, плюс API ко всему этому
  • Улучшение Cinemachine и камер, чтобы сделать картинку более живой и красивой
  • Увеличена скорость импорта и работы с ассетами. В будущем будет загрузка ассетов «по требованию» (on demand)
  • Оптимизация и правка багов в URP
  • То же и с HDRP: оптимизация, фиксы, слои декалей и рейтрейсинг. Ещё будет Hybrid Renderer на основе DOTS, Burst Compiler и ECS. В некоторых моментах прирост производительности в 30 раз, скрины ниже
  • Работа по Unity Physics и Havok продолжается. Unity Physics 0.3.0-Preview уже доступен. Это легковесный, настраиваемый движок с детерминированной физикой.
  • Расширение доступных платформ

Unity supported platforms

Unity supported platforms

Unity supported platforms
  • Мультиплеер. Уже доступны: сервис голосовых чатов Vivox, Multiplay (через их сервисы), и deltaDNA (сервис аналитики). Идёт работа над сервером матчмейкина (вместе у Гугл вроде как), а также уже в превью Unity Transport и NetCode. Это новые сетевые подсистемы с поддержкой DOTS и IPV6. В будущем, вероятно, это всё будет представлять из-за себя какой-то единый сервис для многопользовательских игр и приложений.
  • По мобилочкам. Уже доступна Unity Runtime как библиотека, которую можно встраивать в нативные Android и iOS приложения. Работа для Device Simulator продолжается, как и улучшение Universal Render Pipeline (URP) c заточенностью на iOS/Metal и Android/Vulkan.
  • Project Tiny. Текущая превью версия собрана с новым DOTS Runtime, используется такой же редактор с возможностью билдить под iOS, Android и Web (WASM/ASMJS). Включает в себя: 3D rendering, 3D Physics, базовые анимации/аудио/ввод, 2D для рендера и обработки коллизий. Остальные фичи в разработке, поддержка UIElements будет продолжена, а также более специфичные для платформы функции, экспорт одного HTML, который включает Playable Ads и многое другое.

Unity project Tiny

Unity project Tiny

Unity project Tiny
  • С помощью Unity и так сейчас делается очень много игр и приложений для AR/VR, это направление они также не оставили без обновлений и улучшений. Добавятся всякие интерактивные штуки, без строчки кода, лучшая совместимость с платформами, поддержка Vulkan, Magic Leap (вроде загибается), шаблоны XR проектов, и прочее.

AR and XR options

AR and XR options

AR and XR options

В общем, это будет релиз с работой над ошибками и некоторыми приятными (если допилят) дополнениями. В любом случае, не стоит переводить рабочие проекты на самые последние версии Unity, обязательно что-то сломается (проверено не раз).

Следим за обновлениями!

Апрельский выпуск рассылки собирается!

 1 комментарий    1993   2020   unity   обзоры   ссылки

Unity Learn Premium на 3 месяца

Unity learn premium

Unity learn premium

Unity learn premium

Многие сервисы делают скидки и открывают доступ к своим инструментам на время борьбы с вирусом. Unity — не исключение.

Unity Learn Premium на 3 месяца стал бесплатным. Пользуйтесь на здоровье!

 Нет комментариев    450   2020   unity   уроки
Ранее Ctrl + ↓