Яковлев Илья | Gamedev
4.6K subscribers
239 photos
35 videos
18 files
206 links
Download Telegram
🔥 Такс, такс, такс. Кто тут вспомнил пароль от аккаунта?) Решил запилить продолжение серии постов про инструменты для Unity, думаю начинающим ребятам будет полезно. Переходим из ассетов, упрощающих работу на Unity к инструментам, которые хорошо знать любому разработчику предджун уровня, так как они могут закрыть многие вопросы при разработке геймплея вашей игры. Каждому инструменту в этом списке дана оценка и описание проблемы, которая решается с помощью этого ассета, чтобы вы смогли выбрать, что изучать в первую очередь.

Накидайте 🔥 если хотите продолжение:)

🔣 Input System

Решает проблему отлавливания ввода пользователя.

Этот инструмент предоставляет удобный механизм биндинга клавиш, поддерживает кроссплатформенное управление и позволяет отключать или переназначать управление во время игры. Input System рекомендуется для большинства проектов, за исключением простых мобильных случаев, когда проще написать собственную систему ввода. Устанавливается через пакетный менеджер в разделе Unity Registry.

Необходимость изучения: 6/10.

🔣 Cinemachine

Решает задачи работы с камерой в игре.

Этот инструмент предоставляет широкие возможности для настройки камер, включая готовые пресеты для различных сценариев, и позволяет эффективно переключаться между камерами. В сочетании с Input System, Cinemachine может быстро обеспечить базовую функциональность для прототипирования. Устанавливается через пакетный менеджер в разделе Unity Registry.

Необходимость изучения: 8–9/10.

🔣 Mecanim Animation System

Предназначен для работы с анимацией персонажей.

Этот инструмент поддерживает широкий спектр возможностей, включая гуманоидные аватары, ретаргетинг анимаций, слои анимации и перезаписываемые аниматоры. Глубокое понимание этой системы требуется практически для любого проекта.

Необходимость изучения: 10/10.

🔣 ProBuilder

Инструмент для прототипирования и редактирования игровых уровней.

Он позволяет делать быстрый блокинг и редактировать игровые локации, но в меньшей степени подходит для сложной геометрии. Устанавливается через Package Manager в разделе Unity Registry.

Необходимость изучения: 3/10.

🔣 Spline

Решает задачи создания и использования кривых в игре.

Этот инструмент позволяет размещать объекты вдоль кривых и управлять движением по заданным траекториям. Устанавливается через пакетный менеджер в разделе Unity Registry.

Встречается не во всех проектах, поэтому необходимость изучения 5/10.

🔣 Spline Mesh

Альтернатива предыдущему инструменту со схожим функционалом, но с более широкими возможностями, например, изгибание меша вдоль кривых.

Этот инструмент может потребовать оптимизации производительности. 5/10

🥰 Как - то так. Понятное дело, что для каждого инструмента есть какие-то альтернативы, но, хочу сказать, что перечисленные пакеты являются довольно неплохими для решения своих задач + они совершенно бесплатны:)
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥110👍25❤‍🔥4🐳42💩2
🔥 Маленький, но забавный лайфхак 🔥

Думаю многие про это знают, но все же. Вы можете установить float полю в инспекторе значение +- Infinity (т.е. бесконечность) и, допустим, сделать босса с бесконечной ренджой атаки или бесконечный таймер. У меня все, можете листать дальше:)

#лайфхаки
Please open Telegram to view this post
VIEW IN TELEGRAM
95🔥25👍12🤯7🐳4❤‍🔥3🦄3😁2
🔥 Хорошие новости 🔥

Мне на неделе сообщили, что организуется геймджем с призовым фондом в 100к рублей!

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

https://www.uralgamedev.ru/ <- ссылочка на страничку с необходимой инфой и регистрацией тут:)

p.s. я не выступаю в роли организатора, просто информирую о полезном для многих мероприятии:)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥37👍43😢2🐳2
Дорогие подписчицы, поздравляю вас с 8 марта!
Оставайтесь такими же прекрасными, умными и целеустремленными и пусть в нашем нелегком геймдеверском деле вам улыбнется удача!

С праздником!!! 🌷🥰

P. S. Парни подключайтесь к поздравлениям в комментариях!!!
Please open Telegram to view this post
VIEW IN TELEGRAM
52👍18🐳7💊1
🔥 Продолжаем серию уроков по асинхронности в юнити! 🔥

Новая часть по продвинутому использованию корутин! Дальше - юнитаски:)

Жду поддержки на новом видосе! Насколько я знаю для ютуба важно время просмотра, поэтому попрошу досмотреть ролик до титров так сказать🥰

смотреть тут -
https://www.youtube.com/watch?v=jyogqdzeEH8
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥84👍134🐳3❤‍🔥1
Media is too big
VIEW IN TELEGRAM
При монтаже видео выше забыл вставить мелкий кусочек про кастомные yield instruction (спасибо, что заметили). Решил из - за такой мелочи не перезаливать и просто выложить этот кусочек:)
👍49🔥188🐳2
⭐️ Screenshot Saturday! ⭐️

Делимся и пиарим свои наработки/проекты/идеи в комментариях!🔥🔥🔥
🐳22🔥9👍21🤩1
Всем привет! Ребят, необычный пост - вакансия:)

Знакомые крутые ребята ищут опытного спеца на верстку UI под довольно мощный проект, немного подробностей ниже

————
Необходим верстальщик интерфейсов с Figma в Юнити, уровень разработчика от Middle+ до Senior
Проект на ПК и Мобильные платформы.
За ориентир по сложности проектов можно брать Delta Force.

Основные требования:
- Умения работать в с паттернами проектирования MVVM, MVP
- Работа только с фронт частью
- Работа на классических канвасах без использования Toolkit
————

От себя скажу, что команда у ребят отличная, без лишней бюрократии и остальных вытекающих

За подробностями писать сюда -> @K0nDeR
🔥26🐳12👍92
Псс, живые люди тут еще есть?)
А то хочется новый видосик залить🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥333🤯29👍26👻10👌9🤔76🐳4🌚4🥰3💋1
🔥 Новый видос на канале! 🔥

https://youtu.be/bisGKyU1Kyc <- смотреть тута

Говорим про очистку и деинициализацию игровых сущностей (очень важные моменты для избежания багов), и как это все организовать с помощью IDisposable. Ну и некоторые другие фишки смотрим, естественно:)

Поддержите видос лайком, комментарием и временем просмотра, а с меня новый контент!)

p.s. Проект в комментариях:)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥716🐳6👍4👏1
⭐️ Screenshot Saturday! ⭐️

ХОП-ХОП, А ЧТО ТУТ У НАС?)

Делимся и пиарим свои наработки/проекты/идеи в комментариях!🔥🔥🔥
🔥40🤩4🎉2🐳2
🔥 Небольшой, но полезный лайфхак 🔥

Что-то тихо, давайте пока я готовлю новый контент на следующую неделю, узнаем немножко нового о Unity


🧐 Проблема:

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

🥳 Решение

👉 На самом деле если нажать на небольшую кнопочку возле строки поиска на вкладке проекта (фото 1), то у вас вылезет довольно удобное большое окно для поиска сразу с некоторыми удобными тегами (фото2).

👉 Но и это еще не все! На самом деле при поиске (как в этом окне, так и просто в поисковой строке на вкладке проекта) можно использовать дополнительные команды фильтраций, например команда t:texture выдаст вам все текстуры в вашем проекте (фото 3)

👉 Понятное дело, что команда такая не одна доступна и там много всяких вариаций, поэтому если интересно узнать подробнее, то можно почитать небольшую доку вот ТУТ

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

p.s. 🔥 ставим, если хотим больше полезностей:)))

#лайфхаки
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1419👍8🐳3💅1💘1
🔥 Новое видео! Начинаем разбираться с реактивностью 🔥

https://www.youtube.com/watch?v=aGr9dGLq5qc - смотреть тут:)

👉 Сильно старался донести все максимально доходчиво, начиная с самого начала) Поэтому надеюсь вы поддержите видос, лайком, комментарием и временем просмотра)

👉 В комментариях лежит обещанный проект с инкапсулированной реализацией примера и небольшая пояснялка

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

Ставьте 🔥 если ждете больше контента:)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥70👍6🐳4💯1
🧐 Boxing/unboxing 🧐

Начинаем обсуждать момент, освещенный в последнем видео по реактивности. А именно проблему сравнения объектов, которая там возникает.

Если не смотрели последний видос, то обязательно посмотрите:) Ну и 🔥 поддержите, если интересно

Мы знаем, что все типы в .NET, в том числе value type, такие как float, int и тп. являются неявно унаследованными от класса Object.

Т.е. это значит, что любой объект (неважно value type или reference type) мы можем скастить к типу object без зазрения совести

int number = 42;
object obj = number;


И смотрите в чем тут интересность. Дело в том, что object – это класс, а значит все таки ссылочный тип.

И получается, что я каким-то образом, int, который является структурой, т.е. value type могу засунуть в reference type переменную - как это вообще возможно?

Так вот как раз такой процесс, когда мы value type кастим к ссылочному типу, т.е. процесс преобразования value type значения к reference type и называется упаковкой (boxing).
А когда я делаю обратную операцию, т.е. пытаюсь ссылочный тип скастить к valueType обратно, то происходит распаковка (unboxing)

int number = 42; // Значимый тип
object obj = number; //boxing (упаковка)
int unboxedNumber = (int)obj; //unboxing (распаковка)


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

Упаковка и распаковка вызывают накладные расходы по производительности, т.е. магии не происходит. При боксинге в куче выделяется новый объект, в который упаковывается значение, а процесс анбоксинга извлекает тип данных из созданного объекта (фактически создается просто новый ненужный объект в куче каждый раз). Т.е. понимаете, да? Тут все не так просто как при обычном касте тех же классов и частые подобные процессы могут генерировать кучу мусора, которую сборщик мусора должен будет разгрести

Кроме того подобные ситуации возникают и при реализации интерфейсов на структурах, так что надо быть осторожным (но это отдельный вопрос, не будем его пока трогать)

🤓 Так вот кто мне теперь ответит, почему первоначальная версия нашей реактивности с использованием метода Equals для сравнения плохо подходила для практических задач?

Напомню, что выглядела она вот так:

 if(_value.Equals(oldValue) == false)
Changed?.Invoke(oldValue, _value);
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥227👍4🐳3