Buffer icon Проекты
132 заметки с тегом

unity

Позднее Ctrl + ↑

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

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

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

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

UPD

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

 1 комментарий    905   2019   android   ios   unity   ассеты   проекты

Сервер на Node.js и клиент на Unity

Задумал я тут выложить на Github свою очередную поделку — простой сервер на Node.js и клиента к нему на Unity. Много раз сам гуглил различные библиотеки, пробовал, тестировал, пытался сам написать что-то (с моими познаниями в Node.js :), но потом подсмотрел как сделано у старого китайского Pomelo, который уже сто лет не поддерживается.

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

Опыта в Node.js у меня не очень много, поэтому я нагуглил такой фреймворк — Architect. Не знаю насколько это оправдано, но пока сделано с помощью него.

  • многопользовательский сервер для нереалтаймовых игр
  • отправка и получение команд и запросов (аналог JSON RPC)
  • поддержка SSL
  • основная часть на Architect
  • простое добавление команд: один файл = одна команда
  • работает с MongoDB

Команды (события)

public void TestCommand () {
    JsonObject param = new JsonObject();
    param["param"] = "value";
    _connector.Command("test-cmd", param);  
    // _connector.Command("test-cmd");     // without params
}

Чтобы «слушать» команды с сервера надо подписаться на команду (событие):

public void TestCommand () {
    _connector.On("test-cmd", OnTestCmd);  
    // _connector.Off("test-cmd", OnTestCmd);     // unsubscribe
}

void OnTestCmd (JsonObject result) {
    if (_connector.IsError (result)) {
        // handle error
        return;
    }
    // handle result
}

Запросы (RPC)

public void TestRequest () {
    JsonObject param = new JsonObject();
    param["param"] = "value";
    _connector.Request ("test-rqt", param, (result) => {
        // handle answer
    });   
    // _connector.Request ("test-rqt", OnTestRequest);          // without params
    // _connector.Request ("test-rqt", param, OnTestRequest);   // callback in external method
}

void OnTestRequest (JsonObject result) {
    if (_connector.IsError (result)) {
        // handle error
        return;
    }
    // handle result
}

На RPC запросы с сервера можно подписаться также как и на обычные команды. Отличие в том, на них надо обязательно «отвечать».

На сервере каждая команда находится в отдельном файле и экспортируется, как-то так:

module.exports = function (commander, message, imports) {
    if (!validate(message.data, commander.protocol.log)) {
        commander.sendError(message, "invalid_data");
        return;
    }
    ...
    commander.sendResponse(message, { result: "ok" });
};

Протокол сообщений можно легко переделать, добавить шифрование или свой какой-то формат, можно посмотреть в репе Pomelo, у меня будет также примерно.

Для создания простой многопользовательской онлайн игры — этого достаточно. Это будет такая демка, когда можно взять сервер и клиент, запустить и сразу увидеть как оно работает. Код будет полностью доступен, так что умеющие в Node.js и C#, смогут переписать мои «костыли» на свои :)

После тестирования и «боевой» проверки на игре, если всё получится, думаю сделать небольшой курс, где опишу, как на основе такой базы делать несложные онлайн игры. Но замечу ещё раз — НЕ реалтайм!

Stay tuned.

Zombotron

Недавно в Steam вышел новый Зомботрон. Если кто не играл в предыдущие части на флеше, то многое потерял :) Это 2D экшн про зомби, монстров и пришельцев с кучей оружия и взрывов. Поиграть в предыдущие части можно на официальном сайте.

В этот раз разработчик делал игру 3 года, один, на Unity. Издателем выступил Armor Games. Да, этот тот старый сайт с кучей флеш игр :)

У автора есть отличный сайт на котором он пишет (редко) про разработку, нового Зомботрона и другие свои игры. Есть что почитать. Ещё давно прочитал его перевод серии статей про многопользовательские игры. Ещё есть группа в ВК. Там же можно найти интересные заметки, например, про систему выпадения случайных вещей.

 Нет комментариев    1270   2019   unity   игры
 Нет комментариев    226   2019   unity

Плагины VS Code для Unity

Уже довольно долгое время я пользуюсь VS Code и он, до сих пор меня не разочаровал :) Это отличный быстрый редактор с кучей разнообразных плагинов. Для работы с Unity использую вот эти:

Debugger for Unity

В общем-то, нет смысла придумывать сложное описание, обычный дебагер и он работает. Можно конечно отлаживать и через Debug.Log :) Можно, но не нужно.

C# FixFormat

Эта штука must have, сколько времени она сэкономила сложно посчитать. Форматирует C# код со всеми отступами и переносами. Товарищ Leopotam постарался.

C# XML Documentation Comments

Плагин для генерации XML комментариев, нужно ввести только 3 слеша и IntelliSense всё расскажет о методе или классе.

eppz! (C# theme for Unity)

Это не плагин, а тема оформления. Приятная цветовая гамма в пастельных тонах, для любителей тёмных тем.

Unity Code Snippets

Плагин с коллекцией Unity сниппетов. Позволяет быстро сгенерировать метод с параметрами.

А ещё, я поставил себе шрифт Fira code с лигатурами. Нраица.

 Нет комментариев    383   2019   unity   ссылки

128 книг по разработке игр и Unity

На Пикабу добрый человек раздаёт свою коллекцию книг по разработке игр, в PDF.

  • 128 книг. 2,08 Гб данных.
  • 95% на английском языке, 5% на русском.
  • 90% о разработке игр на Unity.
  • 10% о разработке в общем, геймдизайн, шейдеры, шаблоны проектирования, создание архитектуры проектов и т. д.
  • Лежит все на расшаренной папке Яндекс.Диска или Google.Drive

Смотреть тут

 Нет комментариев    3017   2019   unity   игры   ссылки

Новости Unity с GDC 2019

Unity делает новый физический движок. Даже два :) Первый — Unity Physics, который будет дефолтным, с открытым исходным кодом, на C#. Второй — Havok Physics от Microsoft, платный. На хабре можно почитать статейку.

Call of Duty: Mobile сделала на Unity. Уже идёт пре-регистрация для андроида.

В Unity будет AR Foundation — объединенный API для упрощения разработки AR приложений и игр.

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

Adaptive Performance в Unity. Новая фича которая будет работать начиная с Samsung S10. Как я понял, «картинка» будет подстраиваться в зависимости от мощности устройства, чтобы не было лагов.

Unity будет поддерживать гугловскую игровую платформу — Stadia. Играть можно будет на любых устройствах, хоть с телевизора и из ютуба. Даже геймпад свой выпустили. Что это такое и как оно работает, на хабре. Если коротко — не всё так радужно.

Unity купила Graphine. Это разработчик ПО визуализации текстур в реальном времени. Позволяет использовать UHD текстуры, сжимать их и оптимизировать время загрузки.

DOTS. Unity подтягивает свои инструменты под одну технологию, data-ориентированную. Там и ECS, и C# Job System, и Burst Compiler. Havok тоже будет работать так. Ещё одна статья (перевод) на хабре.

Ну и чтобы два раза не вставать — исходники демки MegaCity. Развлекайтесь.

Новая демка от Unity

На GDC 2019 показали новое видео возможностей движка Unity: The Heretic. Выглядит оч круто. Позже напишу выборку, что ещё интересного анонсировали.

 1 комментарий    280   2019   unity   видео
Ранее Ctrl + ↓