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

Buffer icon Проекты
Позднее Ctrl + ↑

200 звёзд на Github

Achievement unlocked!

Моё новое скромное достижение. Скрипт с data-driven прокруткой для Unity, получил 200 звёзд на Github. Спасибо S1ROZHA :)

Infinite scroll unity 200 stars

Infinite scroll unity 200 stars

Infinite scroll unity 200 stars

Мне как-то писали, что используют его в MTG Arena и ещё какой-то популярной игре. Приятно что этим пользуюсь не только я.

Статистика по рассылке

Небольшая статистика за год рассылки.

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

Статистика рассылки за год

Статистика рассылки за год

Статистика рассылки за год
Статистика по голосам за каждый выпуск

В среднем, рассылку открывают 40-50% подписчиков, но надеюсь, что веб-версию прочитало больше людей :) Несколько раз ссылки на выпуски попадали в телеграм канал по Unity, там было много просмотров, но ссылку давали сразу на Mailchimp, поэтому в статистике это не видно :(

Переходы по коротким ссылкам

Переходы по коротким ссылкам

Переходы по коротким ссылкам
Статистика по переходам с коротких ссылок

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

📩 Все выпуски: 1 2 3 4 5 6 7 8 9 10 11 12

Рассылка по играм и Unity #12

Dirty bomb design document

Dirty bomb design document

Dirty bomb design document

Закрытие сезона, подведение итогов и анонс планов! Всё читайте в 12 выпуске. А также:

  • уроки Unity ECS
  • performance marketing
  • Unity 2020.2
  • за кадром Among Us
  • Unity + ARKit + LIDAR
  • и другие интересности

Читать итоговый выпуск 📩

Предыдущие выпуски: 1 2 3 4 5 6 7 8 9 10 11

→→ Подписаться ←←

Командный бой на Unity (пример)

Так и не придумал как будет правильней назвать этот пример :)

Unity team fight example

Ограниченное поле из клеток и две команды. Юниты появляются рандомно на своей половине и начинается бой.
Каждый юнит ищет противника, как сонар у подводной лодки. Найдя, строит к нему путь с помощью волнового алгоритма и начинает движение. Так как за ход многие юниты могут поменять свое расположение, путь перестраивается каждый раз.

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

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

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

Создание плагинов для Unity

Плагины для Unity

Плагины для Unity

Плагины для Unity

Пишу статью про создание плагинов для Unity под iOS и Android. Нужны комменты и советы.

За несколько лет, я сделал большое количество различных плагинов. Многие они не в паблике и опенсорс, но это не надолго (надеюсь :).

Есть куча ситуаций когда одной Unity недостаточно и нужно использовать возможности платформы. Банально, но до сих пор, в Unity нет работы с галерей и камерой из коробки :) Смешно? Не очень. В Xamarin есть, а в Unity нет.

Для многих менее опытных разработчиков, создание плагина для Unity под мобильную платформу кажется чем-то сложным, но на деле, это не так сложно и страшно. По крайней мере, организовать простое взаимодействие — достаточно просто. В статье, будет шаблон для Android (на Java) и iOS (на Obj-C) для создания плагинов и их связи с Unity приложением.

Поэтому вопрос: о создании каких плагинов вы бы хотели прочитать в первую очередь? Примеры: галерея, уведомления, браузер, покупки, шаринг, [продолжите]...

 1 комментарий    1077   9 мес   android   apple   camera   ios   plugin   unity   разработка   с#

Ноябрьский выпуск рассылки Unity #11

VSCode Stories

VSCode Stories

VSCode Stories

В этом выпуске:

  • как заработать на Unity Asset Store
  • публикация игры в AppGallery
  • динамический лут в играх
  • новый курс у dev2dev
  • и ещё 26 заметок, ссылок, исходников и видео

Читать последний выпуск 📩

Предыдущие выпуски: 1 2 3 4 5 6 7 8 9 10

→→ Подписаться ←←

Apple уменьшит комиссию до 15%

Apple small business programm

Apple small business programm

Apple small business programm

Начиная со следующего года, разработчики заработавшие меньше $1 млн. смогут рассчитывать на снижение комиссии с 30% до 15%! И это вроде как не фиксированная система, т. е. если заработок снова превысит порог, то и комиссия увеличится, обратно это тоже работает.

Считаю, что это успех, друзья! Связано ли это с антимонопольными разбирательствами или давлением Epic Games с коалицией — неважно, для небольших разработчиков это то что нужно, а их больше 90%.

Возможно и Google вскоре подсуетится, кто знает...

Анонс от Apple

 1 комментарий    1127   10 мес   apple   ios   mac   игры   ссылки

Unity EventBus на интерфейсах

public class SaveLoadManager : Monobehaviour, IQiuckSaveHandler
{
    private void OnEnable()
    {
        EventBus.Subscribe(this);
    }

    private void OnDisable()
    {
        EventBus.Unsubscribe(this);
    }

    private void HandleQuickSave()
    {
        // код сохранения
        ...
    }
}

Интересная реализация системы событий для Unity. В качестве ключа для подписки выступает интерфейс. Несколько лет назад, я писал про простой менеджер событий, но этот вариант выглядит по-лучше. Но нужно не забывать отписываться, чтобы избежать утечек. Как правильно в комментах заметили, можно использовать WeakReference, например.

Пароль от SSH ключа

Забыл пароль от SSH ключа. И такое бывает...

Уже думал, что сейчас сделаю новый и потом буду обновлять ключ на всех серверах, на Github и прочих сайтах. Но, как оказалось в MacOS есть возможность посмотреть пароль.

  1. Открываете «Связку ключей»
  2. Ищите свой ключ (id_rsa или любой другой)
  3. Вводите пароль пользователя (скорее всего пользователь должен быть админом)
  4. Всё!
 Нет комментариев    503   10 мес   mac

Unity & iOS capabilities

iOS capabilities list

iOS capabilities list

iOS capabilities list

Как оказалось, даже для последних версий Unity, есть проблема программно выставить нужные параметры в Xcode проекте :( А это необходимость, иначе никакой CI\CD не работает и придётся билдить iOS версию вручную, что конечно не очень правильно.

Для этих целей в Unity есть специальный PostProcessBuildAttribute и PBXProject. После билда в Xcode проект, можно настраивать уже другие параметры, не доступные внутри Unity. Но, даже следуя мануалам, как-то оно не всё работает...

Так, например, чтобы добавить функцию Sign in with Apple, нужно воспользоваться ProjectCapabilityManager. В коде это выглядит примерно так:

...
string projectPath = string.Format ("{0}/Unity-iPhone.xcodeproj/project.pbxproj", path);
PBXProject project = new PBXProject ();
string file = File.ReadAllText (projectPath);
project.ReadFromString (file);
string target = project.GetUnityMainTargetGuid ();
string entFile = "game.entitlements";
ProjectCapabilityManager manager = new ProjectCapabilityManager (projectPath, entFile, "Unity-iPhone", target);
manager.AddSignInWithApple ();
// other capabilities
manager.WriteToFile ();

Но таким образом файл X.entitlements не добавляется в проект, создаётся, но не добавляется. И через project.AddFile() — тоже. Спасает как всегда stackoverflow :) Оказывается, помимо project.AddFile() надо добавить ещё специальный property, чтобы всё закрутилось:

...
project.AddFile (entFile, entFile);
project.AddBuildProperty (target, "CODE_SIGN_ENTITLEMENTS", entFile);
File.WriteAllText (projectPath, project.WriteToString ());

Почему это не написано в мануале Unity — непонятно.

Ранее Ctrl + ↓