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

unity

Создание плагинов для Unity

Плагины для Unity

Плагины для Unity

Пишу статью про создание плагинов для Unity под iOS и Android. Нужны комменты и советы.

За несколько лет, я сделал большое количество различных плагинов. Многие они не в паблике и опенсорс, но это не надолго (надеюсь :).

Есть куча ситуаций когда одной Unity недостаточно и нужно использовать возможности платформы. Банально, но до сих пор, в Unity нет работы с галерей и камерой из коробки :) Смешно? Не очень. В Xamarin есть, а в Unity нет.

Для многих менее опытных разработчиков, создание плагина для Unity под мобильную платформу кажется чем-то сложным, но на деле, это не так сложно и страшно. По крайней мере, организовать простое взаимодействие — достаточно просто. В статье, будет шаблон для Android (на Java) и iOS (на Obj-C) для создания плагинов и их связи с Unity приложением.

Поэтому вопрос: о создании каких плагинов вы бы хотели прочитать в первую очередь? Примеры: галерея, уведомления, браузер, покупки, шаринг, [продолжите]...

 Нет комментариев    20   2 дн   android   apple   camera   ios   plugin   unity   разработка   с#

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

Как оказалось, даже для последних версий 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 — непонятно.

 Нет комментариев    104   23 дн   ios   unity   разработка   с#

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

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

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

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

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

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

 Нет комментариев    640   2 мес   unity   игры   разработка   с#

Sign in with Apple, Google Sign-In и 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. Если есть вопросы, пишите.

 2 комментария    665   3 мес   android   apple   ios   plugin   unity   разработка

Unity Learn Premium for free

Unity Learn Premium for free

Unity Learn Premium for free

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

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

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

 Нет комментариев    707   5 мес   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
  • Обновление и улучшения профайлеров: Profile, Frame Debugger, Physics Debugger, UIElements Debugger, IMGUI.. Профайлер можно запустить, как отдельный процесс. Если вы используете Job System, то с 2020.1 сможете увидеть что происходит внутри с помощью нового инструмента. Документацию вроде тоже обновили.

Updated Unity profiler

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

Unity visual programming

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

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

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

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

Unity building tools

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

Visual Effect Graph

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

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
  • Мультиплеер. Уже доступны: сервис голосовых чатов 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 и так сейчас делается очень много игр и приложений для AR/VR, это направление они также не оставили без обновлений и улучшений. Добавятся всякие интерактивные штуки, без строчки кода, лучшая совместимость с платформами, поддержка Vulkan, Magic Leap (вроде загибается), шаблоны XR проектов, и прочее.

AR and XR options

AR and XR options

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

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

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

 1 комментарий    625   8 мес   unity   обзоры   ссылки
Ранее Ctrl + ↓