Избранное

Все заметки

GitHub icon Github

Buffer icon Проекты

Обо мне

93 заметки с тегом

unity

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

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

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

Ссылка на Github

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

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

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

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

UPD

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

 Нет комментариев    11   3 мес   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. Да, этот тот старый сайт с кучей флеш игр :)

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

 Нет комментариев    12   3 мес   unity   игры
 Нет комментариев    14   4 мес   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 с лигатурами. Нраица.

 Нет комментариев    16   5 мес   unity   ссылки

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

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

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

Смотреть тут

 Нет комментариев    56   5 мес   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. Развлекайтесь.

Ранее Ctrl + ↓