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

unity

Unity Learn Premium for free

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

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

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

 Нет комментариев    213   16 дн   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 комментарий    379   3 мес   unity   обзоры   ссылки

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

Unity learn premium

Unity learn premium

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

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

 Нет комментариев    83   3 мес   unity   уроки

TabsView для Unity

Сегодня у нас раздел «Велосипедостроение» :)

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

Когда-то давно понадобилось сделать в UI горизонтальную прокрутку табами. В iOS есть такой стандартный элемент. В Android по-моему тоже. Для Unity как известно стандартные UI компоненты довольно скудны. Поэтому каждый придумывает себе, по мере надобности. Вот и получилось когда-то такое, довольно простое решение.

  • Управляется свайпами
  • Есть индикаторы состояния табов
  • Анимации можно делать любые, с помощью DOTween
  • На переключение таба можно повесить хук

Исходники на Github

 1 комментарий    152   4 мес   git   unity   разработка   с#

Релиз Unity 2019.3

Как известно, после релиза Unity, надо подождать пару месяцев, чтобы всё «устряслось» и вышло несколько багфисков :) Поэтому, рабочие проекты пока бы не советовал переводить на новую версию, но поиграться и посмотреть что добавили, стоит.

Пресеты

Пресеты позволяют кастомизировать любую сущность в Unity и потом использовать её с уже настроенными свойствами. Например, вам нужно создать несколько разных объектов/префабов с компонентом Rigidbody, для которых вы каждый раз будете настраивать массу и ещё какие-то свойства. Теперь можно сохранить Rigidbody в пресет и использовать. Работает drag-and-drop и есть API.

Unity presets feature

Unity presets feature

Сторонние материалы

Теперь можно использовать материалы сделанные в других программах. Пока поддерживаются: Autodesk Arnold Standard Surface shader, Autodesk 3ds Max physical material и Autodesk Interactive shader. Но в будущем список скорее всего будет расширен.

Работа с 2D

Куча обновлений для работы с 2D проектами:

Про Data-Oriented Technology Stack (DOTS) ничего не пишу, потому что он мне пока не интересен, но там тоже много нового и в итоге, Unity всё переведёт на него и откажется от старой идеологии.

  • 2D PSD Importer — позволяет импортировать файлы Photoshop сразу в Unity, сохраняя информацию о спрайтах и слоях, что особенно актуально если вы будет использовать пакет 2D Animation.
  • 2D Animation — предоставляет все инструменты для создания скелетной анимации прямо в Sprite Editor (создание костей, риг, и т. д.)
  • 2D Tilemap Editor — позволяет быстро создавать квардратные, шестиугольные (hex) и изометрические тайлмапы.
  • 2D Sprite Shape — поможет создавать красивые 2D-ландшафты и объекты с помощью кривых.
  • 2D Pixel Perfect — гарантирует, что ваша пиксельная графика останется чёткой и стабильной в движении при различных разрешениях, а Cinemachine теперь включает расширение виртуальной камеры Pixel Perfect для улучшения совместимости с пакетом.
  • 2D Lights и 2D Shadows — включены в Universal Render Pipeline, как чaсть 2D Renderer.

Как результат, юнитеки сделали специальный демо проект, который показывает все эти возможности.

2D spline

2D spline

Штуки для программеров

  • SerializeReference — новый атрибут позволяет сериализовать классы C# как ссылки, а не как типы значений.
  • Обновили физический движок с v3.4 до v4.1 — улучшенный MeshCollider и Cloth.
  • Настраиваемый Play Mode — сейчас перед запуском, скрипты и сцена перезагружаются, что может отнимать время, если скриптов много, а сцена «тяжелая». Теперь, можно настроить Play Mode так, чтобы сцена или скрипты не перезагружались, если они например не менялись. Это позволит сэкономить 50-90% времени, как пишут.
  • Улучшили профайлер — теперь можно настраивать отображаемое количество фреймов. А ещё, теперь можно смотреть стек вызовов которые выделяют память. Это классно, можно найти критичные места.

Profile allocation manager

Profile allocation manager

Редактор

  • Новый Editor UI — всё плоское, иконки, шрифты, производительность, поддержка высоких разрешений.
  • Быстрый поиск — Alt + ’ для поиска по файлам, префабам, настройкам и объектам на сцене.
  • UIElements и UI Builder — новая концепция построения интерфейсов, я бы не торопился её использовать, пока нет отзывов о багах и производительности новой системы. Но я думаю, что там всё грустно.

Остальное

Свой CI/CD для Unity

Mopsicus CI/CD bash script

Mopsicus CI/CD bash script

Написал небольшую статью на Хабр про скрипт который получился в результате автоматизации сборки Unity проектов под Android и iOS. Раньше большинство операций делалось вручную, теперь всё сведено к минимуму.

Один запуск скрипта и:

  • скачиваются последние изменения с GIT
  • запускаются тесты
  • собирается APK для Android, в develop или release
  • собирается для iOS Xcode проект, в develop или release
  • компилируется
  • архивируется и экспортируется в IPA
  • генерируется манифест для него
  • генерируются HTML страницы для установки
  • всё это загружается на сервер с помощью sshpass
  • все логи записываются в отдельную папку
  • отсылается уведомление в Телеграмм, что всё готово

Вот такая интеграция и доставка :)

Исходники на Github

Рассылка по Unity

Mopsicus Newsletter subscribe

Mopsicus Newsletter subscribe

Решил сделать ежемесячную email рассылку по Unity, играм и разработке.

За месяц скапливается много черновиков, но не все они тянут на статью, а постить мелкие разрозненные заметки не хочется. Поэтому подумал в сторону рассылки.

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

Всего один раз в месяц вы будете получать ссылки на:

  • интересные статьи
  • обзоры
  • видео
  • аналитику
  • исходники
  • скрипты
  • игры
  • инструменты разработки
  • до сюда дочитали?
  • плагины и ассеты
  • мои комментарии ко всему этому

Присоединяйтесь!

📩 Ссылки на все выпуски можно найти по тегу: рассылка.

Firebase под контролем

У меня есть плагин для Unity, который отвечает за уведомления, как локальные так и PUSH. Firebase даёт файлик google-services.json, который нужно добавить в Android проект или плагин, и при сборке, уже Gradle плагин прочитает из этого файла, создаст XML и позже Firebase будет инициализироваться автоматически в приложении.

Но, хотелось бы, чтобы плагин был один и его можно было импортировать в другие проекты, не пересобирая его каждый раз с новый JSON файлом. Думал это будет некоторой проблемой и придётся придумывать костыли, но оказалось всё проще.

Можно инициализировать Firebase вручную с нужными параметрами. Т. е. всё что лежит в JSON файле, можно передать в конструктор и оно будет работать. Для этого, надо добавить в манифест:

<provider
    android:name="com.google.firebase.provider.FirebaseInitProvider"
    android:authorities="${applicationId}.firebaseinitprovider"
    tools:node="remove"
    />

Теперь Firebase автоматически не инициализируется. А чтобы сделать это самому, в плагине, при старте Unity приложения будет вызываться функция с конструктором и нужными параметрами уже из конфига игры или приложения:

FirebaseOptions.Builder builder = new FirebaseOptions.Builder()
    .setApplicationId("your_app_id")
    .setApiKey("your_api_key")
    .setDatabaseUrl("your_link_to_db")
    .setStorageBucket("your_storage-url");
FirebaseApp.initializeApp(this, builder.build());

Теперь нет необходимости каждый раз билдить плагин для уведомлений. Ура.

Как извлечь ассеты и C# код из APK

Две небольшие статьи одного автора, про то, как извлечь ассеты из APK файл Unity проекта и как получить C# код от туда же. Конечно он будет не в идеальном виде, но всё же.

Иногда интересно (и полезно) узнать, как устроены некоторые моменты в игре, таким образом можно расковырять его и поискать. Извлекать ассеты (картинки, звуки, модели) и использовать их в своих проектах, конечно не рекомендуется :)

Если хотите хоть как-то усложнить жизнь таким «хакерам» и защитить свой проект, можно использовать обфускаторы кода, такие есть на Github и в Unity Asset Store.

Ранее Ctrl + ↓