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

Избранное

Все заметки

Рассылка

GitHub icon Github

Buffer icon Проекты

Обо мне

Позднее Ctrl + ↑

LeoECS 2.0

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

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

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

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

 Нет комментариев    70   3 мес   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 сообщения с сервера. Почему? Это же фича которая используется почти во всех онлайн играх.

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

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

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

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

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

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

~/Library/Developer/Xcode/

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

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

 Нет комментариев    85   5 мес   ios   mac

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

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

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

Ссылка на Github

 1 комментарий    99   6 мес   git   проекты

Backstage WWDC 2019

Вернулся из Сан-Хосе, был на WWDC 2019, хотелось бы поделиться некоторыми деталями от участника.

В марте «выиграл в лотерею» билет на WWDC и начал оформление доков. Об этом можно написать отдельный пост, если интересно, как сейчас в России получить американскую визу (не быстро, но может повезти). Всё успел, в конце апреля уже была готова виза :)

Три перелёта и я в Сан-Хосе. Сама конфа проходила в McEnery Convention Center, в центре города. Как пишет википедия, Сан-Хосе третий по численности населения в штате, после Лос-Анджелеса и Сан-Диего и десятый в США, а так и не скажешь О_о

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

Вообще, уровень организации конференции просто супер! Всё очень чётко: сессии, доклады, свет, звук, работа волонтеров, приложение с расписанием и новостями, лаборатории, еда/напитки, всё работало, как часы. Было пару раз когда у докладчиков что-то не компилировалось или не получалось подключиться, но на этот случай были записаны специальные ролики в симуляторе с «нормальной» работой приложения (видимо ранее были прецеденты).

Про саму презу Keynote, думаю особого смысла нет говорить, все всё уже двадцать раз рассказали в подробностях. После, когда смотрел запись, не нашёл на ней как зал смеялся после объявления цены на подставку для нового Mac Pro, это было громко, видимо такие звуки приглушают :)

После Keynote, Тим который Кук, вышел к прессе показать новые возможности AR. Выглядело это вот так:

В холле, между докладами обычно очень людно, но это только в первый день:

Надо сказать, что очереди были везде, из-за большого количества участников: на вход, на доклады, в WWDC Store была отдельная очередь которая начиналась далеко на улице:

После входа в сам магазин, на покупку было ещё 8 очередей с двух сторон, но двигались они достаточно быстро, хотя может мне повезло. Из ассортимента: майки ($35), кепки ($40), свитера ($60), наушники, переходники, зарядки и т. д.

У всех были бейджи, даже у собак :)

Не попал на Bash в четверг :( Был в это время в Сан-Франциско. По фоткам было классно. Жаль конечно...

И немного про доклады. Их было много и темы самые разные. Каждый день с 9 до 17. Много было про SwiftUI и как его использовать, про AR, новые возможности Xcode и iOS 13. На все естественно не было возможности попасть, потому что они шли одновременно в трех залах. Но потом обязательно посмотрю записи.

Ну а сам Сан-Хосе так себе, по сравнению с Сан-Франциско :) Но всё равно очень красиво и интересно.

Ранее Ctrl + ↓