Избранное

Все заметки

Рассылка

GitHub icon Github

Buffer icon Проекты

Обо мне

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

git

TabsView для Unity

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

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

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

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

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

 1 комментарий    98   5 дн   git   unity   разработка   с#

Свой CI/CD для Unity

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

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

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

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

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

 1 комментарий    105   7 мес   git   проекты

Обновление UnityMobileInput

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

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

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

Было
Стало

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

GitHub для Unity

Юнитеки озадачились и выпустили из беты Github for Unity. Как понятно из названия, это расширение для работы с Github. Теперь все операции можно делать прямо из редактора. Кроме того, есть ряд приятных мелочей:

  • большие файлы загружаются в отдельное хранилище LFS (Large Files Storage)
  • отображение различий в файлах с использованием различных предустановок
  • строка с быстрыми действиями в Git
  • уведомления с обновлениями

Исходный код расширения доступен на Github (где же ещё :).

Armory3D

Это игровой движок для Blender. Все модели, материалы, свет и прочее, идут из 3D редактора — полная интеграция.

Достаточно интересный инструмент. Он ещё в разработке, но уже много что сделано:

  • не нужно ничего никуда экспортировать/импортировать — всё уже в блендере
  • неплохая система рендера
  • физика
  • звуки
  • сеть
  • глобальное освещение на вокселях
  • поддержка нод: шейдеры, логика и т. п.

В основе всего этого, кроссплатфоменные Haxe и Kha

Естественно, в 2018 году, можно (и нужно) билдить под все основные платформы:

  • Android, iOS
  • Windows, Linux, Mac
  • PS4, Xbox One, Switch
  • HTML5
  • Ещё куча

Больше видео на канале в Youtube.
Начиная с последней версии, движок стал бесплатным! Все исходники лежат на 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 blur effect и 2 камеры

В этом примере, я собрал сразу два интересных момента:

  1. как сделать размытый фон
  2. как использовать сразу 2 камеры

Для чего это может понадобиться? Например, чтобы одна камера была для игры, с настроенными пост эффектами, другая для интерфейса. Или чтобы сделать вот такой эффект размытия. В общем-то, можно и 3 камеры использовать. Зависит от потребностей и фантазии...

Фокус в том, чтобы настроить камеру на рендер только нужного слоя.
Как было сделано в этом примере:

  • Объекты или контейнер которые должны быть размыты, находятся в слое Blur
  • Blur camera рендерит только слой Blur (Culling Mask)
  • Для Main camera этот слой отключён, стоит флаг Depth only и глубина больше, чем у Blur camera
  • Ну и на Blur camera висит собственно скрипт размытия

По такому же принципу можно одновременно и 3 камеры сделать. Если потребуется.

Исходник на Github

Отправка письма из Unity

Ничего особенного конечно, ничем не отличается от самого обычного плагина для iOS или Android, но кто-то у меня спрашивал про это.
Весь код умещается на одном экране, дольше демку делал :)

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

Вообще, надо бы собрать все плагины, мелочуху и выложить на гитхаб: синхронизация с iCloud, in-app покупки (не доверяю я Unity IAP :), буфер обмена, получение изображения с камеры и галереи, сохранение в галерею, push уведомления, запись в keychain, авторизация через Google Sign-in, встроенный браузер и прочее.
Если что-то заинтересовало — пишите в комменты или mail@mopsicus.ru.

 Нет комментариев    72   2017   android   git   ios   plugin   unity

Работа в фоне в iOS и Unity

Маленький плагин который позволяет поработать приложению в свернутом виде на iOS, некоторое время. Зачем это нужно? Например, чтобы дождаться команды с сервера и показать пользователю уведомление, что пришло время его хода.
Весь плагин состоит из двух функций, которые запускают и останавливают задачу при потере фокуса.

-(void) startTask {
    [self endTask];
    if (bgTask == UIBackgroundTaskInvalid) {
        bgTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
            [[UIApplication sharedApplication] endBackgroundTask:bgTask];
            bgTask = UIBackgroundTaskInvalid;
        }];
    }
}

- (void) endTask {
    if (bgTask != UIBackgroundTaskInvalid) {
        [[UIApplication sharedApplication] endBackgroundTask:bgTask];
        bgTask = UIBackgroundTaskInvalid;
    }
    [UIApplication sharedApplication].idleTimerDisabled = NO;
}

А в Unity это вызывается на OnApplicationFocus:

void OnApplicationFocus (bool focusStatus) {								
    if (focusStatus) 
        Background.StopTask();
    else 
        Background.StartTask();
}

Ссылка на Github

Ранее Ctrl + ↓