#mopsicus

об играх, разработке на Unity и личном опыте

Избранное

Все заметки

GitHub icon Github

Buffer icon Проекты

Обо мне

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

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

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

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

Unity, нейросеть и птички

Очень простой и понятный пример обучения нейросети с линейной функцией активации. Короче, для самых начинающих. Можно переделать под что-то своё и поинтересней.

Спойлер.
В примере, птички обучились пролетать препятствия за 40+ генераций.

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

LeoECS 2.0

Там Leopotam обновляет свой ECS — один из самых быстрых, легких, «памятинежрущих» ECS для Unity и вообще C#.

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

Теперь нет отложенных операций, всё применяется сразу, есть автоинжект фильтров и «мира», переделано API, но обратная совместимость для перехода осталась. Создавать сущности и добавлять компоненты теперь удобней и понятней.

Пока в dev-ветке, но релиз скоро.
Чатик на gitter.im
Discord канал

 Нет комментариев    37   1 мес   ecs   unity   с#

Unity и DeltaDNA

Собственно, новость уже не новость, зачем Unity нужна была DeltaDNA — понятно. Их Unity Analytics такая себе поделка, все всё равно используют сторонние сервисы. А тут неплохой инструмент. Вопрос, насколько глубоко он будет интегрирован во внутренние системы Unity Cloud и будет ли вообще.

В блоге пишут, что будут использовать LiveOps функции, и что DeltaDNA останется доступна для других движков. По поводу всего остального — не понятно.

Из отечественных продуктов мне нравится devtodev. Пока не удалось в полной мере протестировать, но на следующий проект хочу подключить её.

Как делать шрифты для TextMeshPro

TextMeshPro уже давно часть Unity и его можно бесплатно установить через пакетный менеджер. Не буду описывать все преимущества перед старым текстовым компонентом, это примерно как, сравнивать Блокнот и Word.

Шрифт который используется по-умолчанию поддерживает основные символы, но он обычный/скучный/дефолтный, примерно как китовый объектив у фотоаппарата :) Чтобы добавить в свою игру новый красивый/необычный/яркий шрифт, надо проделать все пару операций.

Итак, что необходимо:

  • Сам шрифт TTF (OTF), не забывайте про лицензию ☝️
  • Unity с установленным TMP
  • Набор символов или unicode range, который будете использовать
  • Надо понимать, что во многих шрифтах может не быть необходимых символов
  • У Google есть бесплатные Noto Fonts которые тоже немного скучные, но поддерживают все языки :)
  1. Добавляете файл шрифта в проект, открываете TMP Font Asset Creator и перетаскиваете его в поле Source Font File
  2. Теперь можно выбрать набор символов, для этого есть меню Character Set:
Всё что идёт до Custom Range — понятно, это разновидности ASCII и символы. После это опции где можно выбирать откуда брать символы: из файла, просто перечислить в поле, указать промежуток, последовательность и т. д.
  1. Выберем Unicode Range (HEX) и укажем, например 0020-007F — это базовые латинские символы, ренжи можно указывать через запятую
  2. Теперь можно нажать Generate Font Asset

Окно после настроек и генерации шрифта, должно выглядеть как-то так:

  • Из указанного ренжа было добавлено 95 из 96 символов, не добавился 007F — ␡, его нет в этом шрифте.
  • В результате, для атласа 512×512 получился Point Size = 69, потому что в настройках было указано Auto Sizing.
  • Можно указать размер шрифта вручную, но тогда надо следить чтобы все влезли в атлас и при необходимости увеличить размер атласа.
  • Также, можно разбить свои шрифты на несколько ассетов, например, сделать один (базовый) с часто используемыми символами, второй с математическими знаками, третий с армянским языком. И при необходимости TMP сам будет использовать нужный атлас. Для этого к базовому ассету нужно добавить поддержку остальных:

Как сделать поддержку Emoji в Unity, я уже писал. Ещё недавно на форуме один товарищ опубликовал свое решение проблемы с модификаторами в эмоджи. Напомню, что до сих не работают модификаторы, т. е. если вы сделаете атлас с эмоджи, то всякие флаги, цвет кожи и т. п. будут отображаться некорректно. Автор TMP обещал всё это допилить к версии 2019.3, но пока этого нет. Вариант с форума работает правильно.

Разные unicode ranges для создания своих шрифтов можно подглядеть тут.

Новые штуки в Unity 2020.x

Недавно прошла конференция Unite и там представили роадмап по следующим версиям и функциям Unity. Презентация в PDF по ссылке тут, а запись трансляции ниже:

Кроме того, что снова добавят/улучшат/поломают/перепишут свой ECS и все data-oriented штуки, были и другие интересные вещи связанные с редактором, например, Device Simulator:

Это новое окно, где будут готовые пресеты девайсов, можно быстро симулировать разрешения экранов, менять ориентацию во время игры, выводить информации об устройстве, отображать сейф-зоны, вырезы, чёлки, капли и прочее. Его добавят уже в 2019.3.

Много чего было анонсировано, особенно кому интересен DOTS, поэтому лучше посмотреть трансляцию.

В Unity 2020.x UI Elements станут одним инструментом для создания UI, как для редактора, так и для рантайма. Теперь для кнопок внутри игры можно будет писать стили на псевдо-CSS и описывать элементы в UXML. Плюс к этому добавят UI Builder, чтобы можно было мышкой перетаскивать компоненты, виджеты и вот это вот всё. Как это будет в плане производительности — пока не понятно.

Также подвезут Visual Scripting для DOTS, который все время откладывают (снова Experimental ха-ха) и который все почему-то очень ждут... ¯\_(ツ)_/¯

LWRP превратится в URP с вроде как улучшенными и переписанными пост-эффектами и поддержкой VFX Graph. А для HDRP будет рейтрейсинг, правда пока preview.

А ещё недавно добавили поддержку Apple Sign in, вместе с iOS 13. Если у вас в приложении или игре есть авторизация через соцсети, то должна быть возможность и через Apple Sign in (это требование Apple). Как это сделать и где взять нужный плагин, написано в блоге Unity.

Уведомления в Unity

Юнитеки всё никак не могут сделать нормальный плагин для управления уведомлениями :( Вот и сейчас, вроде что-то новое и вроде даже удобное, но нет возможности принимать push сообщения с сервера. Почему? Это же фича которая используется почти во всех онлайн играх.

Так и придётся пока использовать нативные самописные плагины, печаль...

Исходники примера

 Нет комментариев    30   2 мес   android   ios   plugin   unity   с#   уроки

Xcode и место на диске

Наткнулся на отличный пост про то, как можно освободить кучу места на диске своего мака. Это актуально для разработчиков под iOS, которые используют Xcode.

Мало того, что Xcode с симуляторами сам занимает неплохо так, он во время билдов, при создании архивов и прочих операций, сохраняет свои кеши, временные и не очень файлы, много файлов... Таких файлов со временем может накопиться на несколько десятков гигабайт. Но что хорошо, почти все из них, можно спокойно удалить и освободить место на диске. Находится всё тут:

~/Library/Developer/Xcode/

Список что удалять: https://stackoverflow.com/a/40327522/7500489

Удалил у себя около 100 Гб о_О

 Нет комментариев    64   3 мес   ios   mac

Crop и scale текстур в Unity

Понадобилось делать простой кроп и ресайз картинки в Unity, но пространство имен System.Drawing.Imaging недоступно. Поэтому, чтобы изменить размер или вырезать часть из исходного изображения, все операции пришлось делать через Texture2D.

Демка и исходники на Github.

Ссылка на Github

Ранее Ctrl + ↓