Избранное

Все заметки

Рассылка

GitHub icon Github

Buffer icon Проекты

Обо мне

20 заметок с тегом

android

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());

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

 Нет комментариев    18   10 дн   android   plugin   unity   разработка

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

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

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

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

 2 комментария    36   28 дн   android   unity   ассеты   инструменты

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

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

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

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

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

UnityMobileInput больше не нужен

Обновлено 16.05.2019
Свершилось. В новой версии Unity 2019.1 допилили поле ввода (InputField) в TextMeshPro.

Раньше эта галочка не работала и поле ввода всё равно появлялось.

Теперь дополнительное поле ввода не появляется на iOS и Android! Мой UnityMobileInput не особо-то и нужен, всё можно сделать «штатными» компонентами и оно будет работать как надо, вроде :) Там же есть и поддержка эмоджи.

UPD

Рано радовался, определять высоту экранной клавиатуры юнитеки так и не научились... Всё равно придётся использовать костыль, хоть и меньшего размера :)

 Нет комментариев    32   6 мес   android   ios   unity   ассеты   проекты

Добавь в свой старый Mac TouchID

Шутка ли? :) Нет. Можно разблокировать свой мак с андроида, по отпечатку!
На мак ставится небольшая утилита, а на андроид приложение. И всё.

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

Проверил. Работает. Удалил.

http://suyashsrijan.com/droidid/

 Нет комментариев    20   8 мес   android   mac   инструменты

SslStream не работает в Unity с .NET 4.x

Обновлено 29.07.2019

Случайно обнаружил баг с SSL: на Android и iOS (на других не проверял) некорректно срабатывает конструктор SslStream. Появляется ошибка:

Unable to find libc

Актуально для всех последних версий Unity, где есть .NET 4.x. Если переключиться на .NET 3.5 (который deprecated) — всё работает, как должно.

Надеюсь скоро починят :(

UPD

В 2019.3 будет пофиксено! Ура. Также выпустят фикс и для 2019.2, которая вот-вот должна пойти в релиз.


В тему про SSL: этот генератор SSL самоподписных сертификатов, я уже упоминал в заметке про SSL в Unity, недавно автор по моей просьбе немного обновил его — теперь можно генерить сертификаты с дополнительными параметрами, например, subjectAltName и добавлять туда IP адреса :)

 Нет комментариев    54   10 мес   android   ios   unity   разработка   с#

Обновление UnityMobileInput

Теперь высота клавиатуры считается правильно везде и экран не сдвигается вверх при появлении клавиатуры. Это на Android такая история была.

Зарефакторил много старого кода, убрал не нужное, добавил кастомный инспектор, все настройки поля теперь берутся из Unity UI компонента InputField, клавиатура не пропадает если переключаться между полями и другие мелочи.

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

Было
Стало

Вроде работает :)
UnityMobileInput

 Нет комментариев    25   1 год   android   git   ios   plugin   проекты   разработка   с#

Обновил Infinite Scroll

Был у меня старый скрипт для бесконечных списков в Unity. Но там было одно ограничение — ячейки должны были быть одной высоты. Но сейчас это стало необходимо, поэтому пришлось переписать скрипт.

Теперь все ячейки могут быть любой высоты! Работает также быстро и с помощью одного скрипта.

Ссылка на Github

Unity Mobile Input

Выложил на Github плагин нативного ввода для мобильных устройств. Это небольшая надстройка над стандартным Unity InputField UI. Работает на iOS и Android.

Зачем он нужен:

  1. Нативное поле ввода и клавиатура
  2. Отсутствует раздражающее дополнительное поле над клавиатурой в Android
  3. Для iOS можно добавить кнопку «Готово»
  4. Настройка кнопки Return для клавиатуры: стандартная, далее, готово, поиск
  5. Для работы нужно просто повестить скрипт MobileInput на родной InputField UI

До этого, было временное решение, которое не обладало необходимыми опциями, да и ошибки были. Собственно, на то оно и временное :) Но в Unity до сих пор нет таких возможностей для ввода, поэтому пришлось сделать такой плагин.

В моей версии исправлены ошибки и отрефакторен почти весь код от старого и неподдерживаемого плагина UnityNativeEdit.

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

Unity android plugin + onActivityResult

Автор приводит пример, как он решил вопрос с обработкой onActivityResult в андроидах плагинах для Unity. Создаёт отдельный активити, там перехватывает и завершает. Норм решение.

Ещё можно сделать специальный плагин который будет наследоваться от UnityPlayerActivity и прописать его в манифесте, чтобы он запускался первым. Там тоже можно переопределить onActivityResult.

Ну и ещё как вариант, запускать во фрагменте (fragment) и обрабатывать там.

 Нет комментариев    28   2018   android   plugin   unity   ссылки
Ранее Ctrl + ↓