Unity: сквозь тернии к importing assets
Небольшая заметка по итогу многих лет работы с движком с упоминанием смежных новостей и инфоповодов.
Тег
Записей: 15
Небольшая заметка по итогу многих лет работы с движком с упоминанием смежных новостей и инфоповодов.
Unity представили Unite Now - серию выступлений, демонстраций, вопросов/ответов и историй в цифровом формате - и всё это доступно на вашем любимом устройстве.
Представим типичную ситуацию при работе с ассетами: у вас куча ассетов с одним и тем же лейблом и вы хотите их загрузить разом. А ассеты могут быть разного типа, поэтому в дженерик вы передаёте тип Object
Что же происходит в этом случае с картинками? Загрузятся они как спрайты? Или как текстуры? Что ж...
На конференции Unite Copenhagen 2019 Mark Schoennagel рассказал о некоторых занятных аспектах демки The Heretic.
Я кое-какие интересные моменты выделил в этой статье.
Unity Render Streaming - решение, предоставляющее высококачественные возможности рендеринга Unity в браузере, - теперь доступно всем. Инструмент разработан для таких задач, как просмотр конфигурации автомобилей или архитектурных моделей на мобильных устройствах.
Технология потоковой передачи этого решения использует преимущества WebRTC, и разработчики могут даже использовать WebRTC API для создания собственных уникальных решений.
Одной из самых востребованных функций в Unity, помимо тёмной темы в бесплатной версии (¬‿¬ ), является Visual Scripting, похожий на Blueprint в Unreal Engine.
Разработчики из Unity работали над экспериментальной версией Unity Visual Script и недавно выпустили 3-ю экспериментальную версии вместе с демкой. Не забывайте, что инструмент на стадии разработки, в проде лучше не использовать, да и документацию пока не завезли.
Если вы следили за выступлением Google на GDC, то должны быть в курсе о Stadia - новой облачной игровой стриминг платформе. Unity сообщают, что планируют реализовать официальную поддержку Stadia к концу 2019 году.
В Unity стараются создать удобные инструменты для облегчения процесса разработки, чтобы разработчики могли создавать свои игры под любую платформу, какую только пожелают.
Хорошо, когда вы знаете конкретный класс, который возвращает метод. Но что делать, если метод, к примеру getApplicationContext, возвращает абстрактный тип?
Пока что единственным вариантом вижу получения имени класса у полученного объекта, потом на основании этого имени нахожу соответствующий C# класс.
Многим приходится работать с Java sdk из Unity3d либо используя самописные плагины, либо, если достаточно базовых возможностей sdk, с помощью юнитишных классов AndroidJavaClass и AndroidJavaObject.
Кто работал с этими классами знает, насколько ужасно выглядит код. Меня это тоже достало и решил для текущего проекта небольшую библиотеку сделать. Чуток причесал и залил на гитхаб. Постепенно буду расширять возможности библиотеки.
Сделали поддержку Mac'а, а про Steam overlay и забыли. Недавно игрок пожаловался, что не может в игре покупку сделать, не показывалось окно с инапами. Оказалось, что Steam overay не поддерживает Metal на данный момент.

Вот многие ругают Java так как там ради обратной совместимости много старья тянется и т.п. Юнитишники, видимо, олдскульные джависты из начала 2000-х. Все мы знаем про ужасный класс WWW для загрузки всякого разного. Unity постоянно говорят, что его лучше не использовать больше, что лучше использовать UnityWebRequest, что его выпилят скоро, а воз и ныне там...
Довольно долгое время была проблема в игре, что боты порой могли упереться в стенку и пытаться пройти сквозь неё. И так пробовал понять, в чём проблема, и сяк. Ну да, довольно быстро понял, что рейкасты не проходят, но почему?
В Unity3d есть классы для работы с пушами под iOS. Но нет стандартных средств сделать тоже самое и под Android. Приходится писать свой плагин на Java, который затем можно закинуть в Plugins/Android и делать native вызовы к нему. Если вас интересует, как создать свой плагин (в частности, плагин для отправки локальных пушей), заходим под кат.