fa
Feedback
Джун Джуно к вашим услугам! Путь в разработку игр | Движуха Сакутина

Джун Джуно к вашим услугам! Путь в разработку игр | Движуха Сакутина

رفتن به کانال در Telegram

Для связи: @junoscode

نمایش بیشتر
354
مشترکین
-124 ساعت
-17 روز
-530 روز
آرشیو پست ها
🔥 Кватернионы в Unity: Полное Руководство 🔥 🙂 Всем привет! Давно у нас не было математики. Кватернионы представляют собой
🔥 Кватернионы в Unity: Полное Руководство 🔥 🙂 Всем привет! Давно у нас не было математики. Кватернионы представляют собой ключевую концепцию, когда дело доходит до работы с 3D-графикой и анимацией в Unity. Они позволяют избежать проблем, связанных с использованием углов Эйлера для представления вращений, таких как "проклятие гимбалов". Давайте разберемся, что такое кватернионы и как их использовать в Unity ⁉️ Что такое Кватернионы? 🗣️ Кватернионы - это математическая система расширения комплексных чисел, которая представлена четырьмя компонентами: один вещественный компонент и три мнимых 🗣️ 📌 Вместо традиционных углов Эйлера (например, pitch, yaw, roll) кватернионы позволяют представить вращение в трёхмерном пространстве без риска возникновения сингулярных точек 🔴 Формально, кватернион 𝑄 можно записать так: 𝑄=𝑤+𝑥𝑖+𝑦𝑗+𝑧𝑘, где 𝑤 , 𝑥 , 𝑦 , 𝑧 - компоненты кватерниона ‼️ Кватернионы в Unity: В Unity класс Quaternion используется для представления вращений. Некоторые основные операции, которые можно с ним выполнять, включают: ✔️ Создание кватерниона: Кватернионы можно создавать несколькими способами, включая из углов Эйлера, из оси и угла вращения, а также путём интерполяции ✔️ Вращение объекта: Кватернионы широко используются для задания поворотов объектов в сцене ✔️ Интерполяция (Slerp): Unity предоставляет методы для плавного интерполирования между двумя кватернионами ✔️ Композиция вращений: Вы можете комбинировать вращения, умножая кватернионы 📈 Преимущества использования кватернионов: 1️⃣ Отсутствие гимбал-локирования: В отличие от углов Эйлера, кватернионы не испытывают гимбал-локирования, что делает их более надёжным способом представления вращения 2️⃣ Плавное интерполирование: Благодаря методам, таким как Slerp, кватернионы позволяют легко выполнять плавную интерполяцию между двумя поворотами 3️⃣ Компактность и эффективность: Кватернионы используют всего четыре значения, что делает их компактными по сравнению с матрицами вращения 💥 Надеюсь, что это руководство поможет вам лучше понять и использовать кватернионы при создании впечатляющих 3D-проектов в Unity. А если не хотите ботать математику, но вам нужно понять её? - Джун Джуно к вашим услугам!

🔥 ИЗБАВИТЬСЯ ОТ КОСТЫЛЕЙ В ПРОЕКТЕ? - ЛЕГКО! 🔥 🙂 Всем привет! Пока я готовлю очень интересный пост для Независимых игр, я
🔥 ИЗБАВИТЬСЯ ОТ КОСТЫЛЕЙ В ПРОЕКТЕ? - ЛЕГКО! 🔥 🙂 Всем привет! Пока я готовлю очень интересный пост для Независимых игр, я придумал для вас новый интерактив 📌 Буду выкладывать задачу, в которой есть определенный костыль. Ваша задача этот костыль преодолеть. Ваши решения можете выложить на GitHub и оставить ссылку в комментариях. Я обязательно отсмотрю все решения и напишу пост про все уникальные ошибки. Само собой без указаний на конкретного человека) 💥 Сама задача: ❌ Код можно посмотреть по ссылке. Сейчас система не готова к расширению. К сожалению, при добавление нового способа оплаты, нам нужно модифицировать все if'ы, которые совершают те или иные действия с разными системами 📌 Необходимо зафиксировать интерфейс платёжной системы и сокрыть их многообразие под какой-нибудь сущностью. Например, фабрикой (или фабричным методом) ‼️ Важное условие: пользователь вводит именно идентификатор платёжной системы 📈 Не стесняйтесь проявлять активность под постом, знаете какими способами. А если хотите классный и точечный разбор кода - Джун Джуно к вашим услугам!

🔥 Эффективный контроль Ability и ItemData 🔥 🙂 Всем привет! Ну что, начнем решать сегодняшние проблемы. Основная наша задач
🔥 Эффективный контроль Ability и ItemData 🔥  🙂 Всем привет! Ну что, начнем решать сегодняшние проблемы. Основная наша задача - добиться, чтобы предметы влияли на геймплей 📊 Я перебрал много вариантов в своей голове. Пойдем от худшего к лучшему: 1️⃣ Можно сделать, чтобы у AbilityUser было событие, которое возвращает отработанную ItemData. Все вьюшки подпишутся на этот класс и будут сравнивать со своей ItemData, если они равны значит именно у этой кнопки эффект кончился ❌ Решение не очень, потому что очень много неявных связей и постоянные проверки на идентичность 2️⃣ Передавать AbilityView полностью в AbilityUser. Он будет запускать корутину с эффектом, запоминая это вью. Когда корутина закончится вью включится 🚫 Мы нарушаем SRP. AbilityUser помимо запуска эффектов, ссылается и занимается контролем вьюшек 3️⃣ Вспомним типы связей, чтобы понять картинку к посту. По сути, у нас очень много ответственностей. Выделим их: ✔️ AbilitiesStarter - визитер, которые запускает эффекты в зависимости от типа предмета ✔️ AbilitiesFinisher - визитер, который останавливает действие эффекта ✔️ AbilityModel - модель, в которой будет иметь ссылку на два визитера. Внутри нее будет запускаться корутина ✔️ AbilityView - вью, которая просто может быть нажата и проецирует количество этого предмета у игрока ✔️ AbilitiesRouter - связывает модели и вью между собой. У вью будет событие что кнопка нажата, а у модели, что эффект кончился 📈 В итоге, я выбрал третий вариант. Таким образом, мы инкапсулируем контроль состояния эффекта в модель. Также мы соблюдаем принцип единой ответственности и каждый класс выполняет свою функцию. А если хотите видеть дальнейшую разработку игру - Джун Джуно к вашим услугам!

🔥 ПРИМЕНЕНИЕ ПАТТЕРНОВ В РЕАЛЬНОМ ПРОЕКТЕ 🔥 🙂 Всем привет! Сегодня мы продолжаем улучшать нашу игру. Я буду показывать на
🔥 ПРИМЕНЕНИЕ ПАТТЕРНОВ В РЕАЛЬНОМ ПРОЕКТЕ 🔥 🙂 Всем привет! Сегодня мы продолжаем улучшать нашу игру. Я буду показывать на конкретных примерах решения проблем через паттерны, которые мы изучали 1️⃣ На данный момент у магазина есть существенный недостаток. Вьюшки уже заранее созданы, а значит врощены и будут тяжело поддаваться изменениям ✔️ Для решения этой проблемы мы воспользуемся фабрикой. Она будет создавать столько вьюшек, сколько ей придет моделей. Вью предмета я выделил в префаб и удалил со сцены. Теперь если мы добавим новый Scriptable Object предмета он автоматически визуализируется в магазине 2️⃣ Теперь нужно понять как различать эти предметы, чтобы бездна понимала какие эффекты на нею действуют ✔️ Для этого мы типизируем SO. Сделаем ItemData абстрактным классом и от него пронаследуем до более конкретных типов. В самой игре будет специальный класс, который через динамический визитер будет понимать, какой эффект накладывать 3️⃣ Теперь главная задача, переделать логику взаимодействия с предметами в игровой сцене. Изначально предметы были врощены в сцену и это плодило много классов и сложность в расширении ✔️ Чтобы решить эти проблемы нужно максимально обобщить вьюшки, которые будут создаваться через фабрику по количеству пришедших моделек. При нажатии на вьюшку она будут отправлять ItemData своей модельки в класс ItemUser в котором находится Visitor 📈 Заключение: ‼️ Реализацию ItemUser оставлю на завтра. С ним связаны определенные подводные камни. Если раньше контроль длительности эффекта проходил в каждой вьюшке в отдельности, то теперь это нужно контролировать в формате одного класса Ставьте 👍 если хотите видеть посты про проект из Пыточной Ставьте 🔥 если хотите учебные посты ⚠️ Мечта стать разработчиком игр? - Джун Джуно к вашим услугам!

🔥 ПРОГРЕСС В ПЫТОЧНОЙ 🔥 🙂 Всем привет! Снова пишу про свой проект. Сегодня я займусь окном магазина. На данный момент окно
+3
🔥 ПРОГРЕСС В ПЫТОЧНОЙ 🔥 🙂 Всем привет! Снова пишу про свой проект. Сегодня я займусь окном магазина. На данный момент окно подтверждения покупки не имеет визуального представления, а также не обрабатывает возможность нехватки денег. Давайте это исправим 1️⃣ Для начало я решил поменять фон самого магазина. С золотом он выглядит более антуражным. Для панельки я сделал рамку, а фон в просто цвете 2️⃣ Фон для кнопки я выбрал фиолетового цвета. Очень подходит по цветовой палитре 3️⃣ Нужно сделать визуализацию товара который игрок покупает и проецировать его цену 4️⃣ Чтобы это работало напишем логику. Класс BuyPanel получает данные того товара, которы игрок хочет купить. Для этого вьюшка товара отправляет в панель модель этого товара. Тут у меня и возникла проблема из-за костыльного решения с предметами. У меня две абстрактные вьюшки и две абстрактные модели. Расширять список предметов в проекте было бы очень затруднительно 5️⃣ Я принял решение выделить Scriptable Object, в котором будет храниться информация о предмете. Теперь не будет абстрактных и конкретных моделек и вьюшек. Будет вью для магазина, вью для игры и модель общая для обоих. А эффекты будут различаться через визитер по типу Scriptable Object 📈 В моем посте вы можете увидеть как примерно протекает разработка проекта. Какой поток мыслей проходит в голове и как появляются новые задачи. В заключение поделюсь планами на завтра 🕯 Продолжу улучшать систему предметов. Пока я внес только поверхностные изменения. Нужно будет типизировать SO и реализовать визитер в игровой сцене. Также доработать инфраструктуру между моделью, вьюшкой и датой. ⚠️ Ну а если хотите узнать как протекает разработка игр - Джун Джуно к вашим услугам!

🔥 КРУТЕЙШАЯ ИГРА ИЗ ПЫТОЧНОЙ 🔥 🙂 Всем привет! Время позднее, но как и обещал - пост про мой проект. Это максимально простенькая гиперказуалка. Рефернсы, идеи, образы - всё, что вдохновляло меня увидите чуть позже. Но обязательно пару слов скажу про это! ‼️ Основные механики игры, о которых я хотел бы рассказать: ✔️ Предметы дающие временные бонусы: заморозка времени, увеличение радиуса бездны и ее ускорение. Та система, которая построена на данный момент мне очень не нравится и именно поэтому я сейчас стараюсь ее переделать. Очень костыльно происходит связь предметов для покупки с предметами, которые используются в сцене игры ✔️ Механика заполнения сердца собранными кубами. Очень интересная задача, которая по началу завела меня в тупик. Но менторы подсказали воспользоваться DoTween. Он очень сильно упростил мне жизнь 📈 Дальнейшие планы на проект: 📌 Локализация. Английский и турецкий язык обязательно добавить. Они считаются самыми базовыми для успешного проекта в Яндекс играх. Существует плагин, который делает это автоматически. Поэтому проблем не возникнет 📌 Интеграция рекламы. Я уже имел опыт в интеграции рекламы, поэтому она много времени не займет 📌 Лидер борд. Тоже очень важная часть игры если хочешь, чтобы твоя игра была популярна в Яндекс играх 📌 Мелкие улучшения. Некоторые уже существующие механики могут быть сделаны получше 📊 В дальнейших постах я буду рассказывать про мой ежедневный прогресс. Кстати, вот и GitHub проекта 💥 Если вам интересно узнать про реализацию какой-нибудь конкретной механики, то пишите об этом в комментариях. Нужен проводник в мир разработки игр - Джун Джуно к вашим услугам!

🔥 ПРОЕКТ ЯЮНИОР: НАЧАЛО 🔥 🙂 Всем привет! У вас могла возникнуть мысль, что я не человек, а просто весьма остроумная нейрос
🔥 ПРОЕКТ ЯЮНИОР: НАЧАЛО 🔥 🙂 Всем привет! У вас могла возникнуть мысль, что я не человек, а просто весьма остроумная нейросеть, которая вслепую генерирует посты. ‼️ Посты выходят на весьма различные темы, эту информацию при желании можно найти в других источниках. Но моя миссия - просвещать людей, а наш телеграмм канал - база знаний. Поэтому я постарался собрать здесь все самое важное о чем стоит знать любому разработчику игр. Но пора двигаться дальше! ✔️ Не секрет, если я скажу, что я уже достаточно давно обучаюсь в школе Романа Сакутина. На данный момент я прохожу финальный этап своего обучения - ПЫТОЧНАЯ ✔️ К сожалению, большая часть проекта уже сделана и вы не сможете увидеть создание с самого начала. НО! В пыточной нужно сделать два проекта и его я буду показывать вам от начала и до конца ✔️ Большинству может показаться, что я идеальный программист, который учит идеальным решениям и сам их соблюдает. Но я такой же простой программист и в моих решениях бывают костыли ⭐️ Если вам интересно узнать, что там происходит в школе ЯЮниор и как она работает изнутри, я напишу подробную рецензию и отвечу на все интересующие вас вопросы. Поделюсь опытом и честно расскажу что мне понравилось, а что нет 💥 Завтра я сделаю мини-обзор своего проекты и мы все вместе будем свидетелями нового хита для Яндекс-игр. А если вам интересно увидеть этот проект - Джун Джуно к вашим услугам!

🔥 ТИПИЧНОЕ ВРЕМЯПРОВОЖДЕНИЕ АЙТИШНИКА ВДАЛИ ОТ КОМПА 🔥 🙂 Всем привет! К сожалению, поста на тему разработки игр сегодня не
🔥 ТИПИЧНОЕ ВРЕМЯПРОВОЖДЕНИЕ АЙТИШНИКА ВДАЛИ ОТ КОМПА 🔥 🙂 Всем привет! К сожалению, поста на тему разработки игр сегодня не будет. Потому что весь день я был в селе Дивеево: купели, монастыри и заряд энергии на несколько недель - неотъемлемый набор составляющих любой паломнической поездки ‼️Лето - очень классное время года! Хорошая погода, огромное количество свободного время. Не забывайте, мои любимые подписчики, наслаждаться этой очаровательной природой! 💥 Пишите в комментариях, как вы проводите время вне кода. Поделюсь постами некоторых ребят с нашей Мастерской: ➕ Алексей Пивоваров ➕Данил Пузанов ➕Даниил Летуев Если вы хотите поностальгировать, повспоминать те времена, когда в школе задавали написать сочинение по теме: "Как я провёл своё лето" - Джун Джуно к вашим услугам!

🔥 UNITY И ВЕКТОРНОЕ ПРОИЗВЕДЕНИЕ... ВЕКТОРОВ?! 🔥 🙂 Всем привет! И да я не сделал ошибку в названии поста. Сегодня мы поговорим про векторное произведение векторов... ⛔️ Не пугайтесь, всё не так сложно как кажется ✔️ В результате произведения двух векторов получится вектор, которые одновременно перпендикулярен обоим векторам ‼️ Перпендикулярен = пересекает плоскость под прямым углом ✔️ В данной операции очень важен порядок пришедших на вход векторов. От этого зависит будет полученный вектор смотреть в одну сторону или противоположную 📌 Те кто работали с 3D-графикой скорее всего слышали про понятие нормали поверхности 🗣️ Нормаль - вектор единичной длинны, который перпендикулярен ее поверхности 🗣️ ✔️ В нашей библиотеке Unity также вшит метод для вычисления векторного произведения, вызывается он через Vector3.Cross() ⁉️ Частый вопрос на собеседованиях: как это посчитать в ручную ➕ Если у нас есть вектор A(x₁,y₁,z₁) и вектор B(x₂,y₂,z₂), то вектор C будет равен (y₁z₂-z₁y₂, z₁x₂-x₁z₂, x₁y₂-x₂y₁) 📈 На видео можно увидеть: изменение поворота зеленого и красного вектора, влияют на поворот синего вектора 💥 Жду ваши комменты, если вам что-то непонятно. А если хотите больше шарить в полезной для GameDev матеше- Джун Джуно к вашим услугам!

🔥 Скалярное произведение векторов в Unity 🔥 🙂 Всем привет! Сегодня мы разберем, что такое скалярное произведение векторов
🔥 Скалярное произведение векторов в Unity 🔥 🙂 Всем привет! Сегодня мы разберем, что такое скалярное произведение векторов и как его использовать 👀 Рассмотрим пример: 🔴 У нас есть стражник, который замечает врагов, попадающих в его поле зрения, равное 180 градусам. Мы будем использовать скалярное произведение векторов: вектора направления взгляда стражника и вектора от стражника до врага. Если скалярное произведение больше нуля, враг находится в поле зрения стражника 💥 Как это работает: ➕ Универсальные библиотеки уже содержат все необходимое, для вычисления скалярного произведения можно воспользоваться методом Vector2.Dot() ➕ Этот метод принимает два вектора и возвращает число ➕ Если число меньше нуля, угол между векторами больше 90 градусов ➕ Если число больше нуля, угол между векторами меньше 90 градусов ➕ Если число равно нулю, угол равен 90 градусам ‼️ На собеседованиях часто спрашивают о скалярном произведении векторов и его вычислении: 📌 Упрощенно говоря, скалярное произведение векторов показывает, насколько сильно два вектора направлены в одну сторону. Если они направлены в противоположные стороны, результат будет -1, если в одну и ту же сторону – будет +1 📌 Чтобы вручную найти скалярное произведение, используем формулу: x₁x₂ + y₁y₂ + z₁z₂. Также можно умножить длины двух векторов и косинус угла между ними 📌 Как найти косинус между векторами? Разделите скалярное произведение на произведение длин векторов 📌 Длину вектора можно найти, сложив квадраты каждой координаты и извлёкши квадратный корень из этой суммы 📈 Надеюсь, ваши мозги не расплавились после этого поста! А если у вас есть остались вопросы - Джун Джуно к вашим услугам!

🔥 РАБОТА НА РОМАНА САКУТИНА: НАЧАЛО 🔥 🙂 Всем привет! Мы давно с вами не разговаривали. Вместо поста о разработке игр, сего
🔥 РАБОТА НА РОМАНА САКУТИНА: НАЧАЛО 🔥 🙂 Всем привет! Мы давно с вами не разговаривали. Вместо поста о разработке игр, сегодня речь пойдёт об итогах месяца. 📈 Качество постов заметно улучшилось: курс по дизайну, более разнообразные темы - всё пошло на пользу. У телеграмм канала появилась более активная аудитория. Чаще вижу от вас комментарии, включая вопросы и пожелаю, чему я безусловно очень рад! 👍 Спасибо всем огромное! Как жаль, что через экраны телефонов и мониторы компьютеров я не могу вас всех обнять : ) ‼️ Но безусловно самая главная новость, которая произошла под конец месяца - Роман Сакутин взял меня на работу. Я удостоен чести писать посты в телеграмм канале Независимые игры 📌 Наша цель - продвигать начинающих разработчиков игр. Создать единое и дружное сообщество, где каждый участник сможет найти себе место, чтобы поднять геймдев с колен! ✔️ Я ответственнен не перед Романом, а перед всеми вами! Друзья, движуха только - только начинается! Сейчас самое время с новыми силами всем нам взяться за свои телеграмм каналы! Я буду постоянно следить за вашим развитием, составлять интересные подборки и посты 💥 Я даю слово объективно оценивать вас. Неважно, когда вы присоединились к сообществу, неважно знакомы ли вы со мной лично - каждый получит то, что заслуживает. Работая учителем, я находил хорошее даже в детях, кто плохо вёл себя на моих уроках, всегда выстраивая с ними диалог 🗣️ Дипломатия - величайшее достижение человечества 🗣️ ⭐️ Буду всегда с вами на связи! А если у вас остались какие-то вопросы - Джун Джуно к вашим услугам!

🔥 Векторы в Unity - ни капли нудной зубрежки 🔥 🙂 Всем привет! Сегодня мы разберем понятие векторов и рассмотрим базовые оп
🔥 Векторы в Unity - ни капли нудной зубрежки 🔥 🙂 Всем привет! Сегодня мы разберем понятие векторов и рассмотрим базовые операции над ними, используя примеры из Unity Framework 💥 Векторы в Unity Framework В Unity, структура Vector3 представляет собой набор из трех чисел (𝑥,𝑦,𝑧), которые могут описывать различные аспекты объекта в трехмерном пространстве. Важно понимать, что мы сами решаем, какой смысл в них вкладывать. Давайте рассмотрим несколько примеров: ‼️ Примеры использования векторов: ➕ Позиция: Вектор может описывать положение объекта относительного мирового (глобального) или локального (относительно родителя) нуля. Например, позиция (3,5,7) указывает на то, что объект находится на 3 единицы вправо, 5 единиц вверх и 7 единиц вперед от точки отсчета ➕ Поворот: Вектор может также описывать угол поворота объекта вокруг осей 𝑋,𝑌 и 𝑍. Например, вектор (30,0,0) означает, что объект повернут на 30 градусов вокруг оси 𝑋 ‼️ Основные операции с векторами: ➕ Сложение векторов: Допустим, у нас есть объект, находящийся в точке с координатами (0, 0, 0). Каждую секунду мы хотим перемещать его на одну единицу вправо. Для этого можно использовать сложение векторов. Сложение векторов выполняется поэлементно: 𝑋 складывается с 𝑋, 𝑌 с 𝑌, 𝑍 с 𝑍 ✖️ Умножение вектора на скаляр: Чтобы контролировать скорость передвижения объекта, можно умножить вектор направления на число (скаляр). Умножение вектора на скаляр происходит поэлементно: каждая компонента вектора умножается на это число 📈 Заключение: Векторы представляют собой важный инструмент в Unity и многих других сферах. Они позволяют легко оперировать положением, направлением, скоростью и другими характеристиками объектов в трехмерном пространстве. Поэтому, если вы хотите научиться работать с векторами и не только - Джун Джуно к вашим услугам!

🔥 Математика в GameDev 🔥 🙂 Приветствую всех! Вы когда-нибудь задумывались, как обычные строки кода превращаются в захватыв
🔥 Математика в GameDev 🔥 🙂 Приветствую всех! Вы когда-нибудь задумывались, как обычные строки кода превращаются в захватывающие виртуальные миры? Ответ кроется в математике. Сегодня я расскажу о её роли в разработке игр ‼️ Математика служит основой для создания как визуальных эффектов, так и игровой механики. От определения движения персонажа до моделирования физических взаимодействий — всё это достигается благодаря математическим концепциям 📈 Ключевые области, где математика играет важную роль: 1️⃣ Алгоритмы и игровые механики Алгоритмы управляют передвижением персонажей и поведением противников, часто используя модели, такие как алгоритм A* для поиска пути 2️⃣ Физика и симуляции Физические движки создают реалистичные взаимодействия и поведения объектов в игре, используя законы физики 💥 В будущем мы детально рассмотрим ключевые математические концепции, которые лежат в основе разработки игр, а именно: ➕ Базовые операции над векторами Понятие вектора и базовые операции с векторами, которые используются в играх для описания движения и направления ➕ Скалярное произведение векторов Как скалярное произведение помогает определять углы между векторами и влияет на различные аспекты игровой механики ➕ Углы и расчет углов Вычисление углов между векторами для правильного отображения поворотов и ориентации объектов в игре ‼️ Эти темы помогут вам понять, как абстрактные математические концепции применяются на практике, чтобы создавать увлекательные и правдоподобные игровые миры. А если вы хотите узнать тайны математики в GameDev - Джун Джуно к вашим услугам!

🔥 Оптимизация и Уникальные Механики: Настройка Матрицы Пересечения Физики в Игровом Проекте 🔥 🙂 Всем привет! Сегодня мы поговорим о настройке матрицы пересечения физики - важном аспекте, который может существенно повлиять на производительность вашего игрового проекта и его уникальность ⁉️ Как настроить матрицу пересечения физики Процесс настройки достаточно прост и интуитивно понятен: 1️⃣ В верхней панели главного окна редактора выберите Edit 2️⃣ В появившемся меню нажмите Project Settings.... 3️⃣ В открывшемся окне найдите вкладку Physics и прокрутите вниз до раздела Collision Matrix 4️⃣ В этом разделе вы увидите расписанную матрицу пересечения слоёв в виде треугольной таблицы 📌 Каждая строка и столбец представляют собой определённый слой. Если на пересечении вертикального и горизонтального слоя стоит галочка, это означает, что физические взаимодействия между объектами на этих слоях будут происходить. Вы можете управлять этими взаимодействиями, устанавливая или убирая галочки ⁉️ Как изменить слой у объекта Для изменения слоя у определённого объекта выполните следующие шаги: ➕ Выберите объект в сцене ➕ В правом верхнем углу окна Inspector найдите вкладку Layer ‼️ По умолчанию все объекты имеют слой Default, но вы можете выбрать подходящий слой из выпадающего списка или создать новый слой 📌 Чтобы создать новый слой, выполните следующие действия: ✔️ В выпадающем списке Layer выберите Add Layer.... ✔️ В открывшемся меню добавьте новый слой и присвойте ему имя. ⁉️ Зачем это нужно 📈 Оптимизация проекта: Правильная настройка матрицы пересечения позволяет значительно снизить количество обрабатываемых столкновений, что непосредственно улучшает общую производительность вашего проекта. Меньшее количество ненужных вычислений освобождает ресурсы для более важных задач 💥 Создание уникальных механик взаимодействия: Настройка слоёв открывает возможность создать уникальные игровые механики. Например, некоторые объекты могут проходить сквозь стены или не взаимодействовать с определёнными другими объектами, что позволяет вам внедрять интересные и новаторские решения в дизайн уровней и геймплей 👀 В результате правильная настройка матрицы пересечения физики не только улучшает производительность вашего проекта, но и предоставляет инструменты для создания уникальных игровых механик, которые могут выделить ваш проект среди других. А если хотите, чтобы и код выделялся на фоне других - Джун Джуно к вашим услугам!

🔥 Решение проблемы типизации в Unity: сравнение тегов и классов 🔥 🙂 Всем привет! Давайте узнаем про очень полезную фишку.
+1
🔥 Решение проблемы типизации в Unity: сравнение тегов и классов 🔥 🙂 Всем привет! Давайте узнаем про очень полезную фишку. Сегодня мы поговорим о типизации объектов в Unity 📌 Представьте себе ситуацию: персонаж может ходить по разным поверхностям. При этом игрок будет соприкасаться с поверхностями через коллизии ‼️ Рассмотрим два варианта решения этой задачи: ✔️ Использование тегов. В этом подходе мы создаем теги и назначаем их различным объектам: ❌ Недостатки данного подхода заключаются в том, что очень легко можно неправильно назначить тег или сделать ошибку при попытке его найти. В результате может потребоваться значительное время на поиск и устранение такой ошибки ✔️ Использование пустых классов: 1️⃣ Создаем пустые классы с названиями поверхностей 2️⃣ Назначаем эти классы объектам в Unity 3️⃣ Затем персонаж будет использовать метод TryGetComponent для определения типа поверхности. 📈 Последний способ удобен тем, что статический анализатор поможет предотвратить ошибки в названиях классов 💥 Использование классов вместо тегов представляется более надежным и комфортным, особенно в больших проектах, где точность и ясность кода имеют первостепенное значение. Хотите больше разбираться в разработке игр - Джун Джуно к вашим услугам!

🔥 Теперь ты познал GitHub Desktop: Ветки и Слияния 🔥 🙂 Всем привет! Сегодня мы с вами рассмотрим, как создавать ветки и производить их слияние с помощью GitHub Desktop 📊 Пошаговый гайд: 1️⃣ Создание новой ветки Для начала необходимо создать новую ветку. Это можно сделать следующим способом: ➕ В программе GitHub Desktop откройте текущий репозиторий ➕ Нажмите на кнопку Current Branch в верхней панели и выберите New Branch ➕Введите название новой ветки и нажмите Create Branch 2️⃣ Переключение на новую ветку После создания новой ветки, GitHub Desktop автоматически переключится на нее, и вы сможете вносить изменения, не затрагивая основную ветку. Это полезно, когда вы работаете над новыми функциями или исправлениями, которые еще не готовы для основной ветки 3️⃣ Внесение изменений и создание коммитов Теперь можно приступить к работе. Вносите необходимые изменения в файлы проекта, затем: ➕ В панели изменений (Changes) вы увидите все модификации ➕ Напишите краткое описание изменений в поле Summary ➕ Нажмите Commit to [название ветки] для фиксации изменений 4️⃣ Публикация ветки Чтобы отправить изменения в облако на GitHub, выполните следующие действия: ➕ Нажмите комбинацию клавиш Ctrl + P ➕ Во всплывающем окне выберите ветку для публикации ➕ Подтвердите нажатие кнопкой Publish Branch 5️⃣ Слияние ветки Когда работа в новой ветке завершена и протестирована, можно приступить к слиянию с основной веткой ➕ Переключитесь на основную ветку, нажав на Current Branch и выбрав main или любую другую основную ветку ➕ Нажмите снова на Current Branch и выберите Merge into Current Branch ➕ В появившемся окне выберите ветку, которую хотите слить с основной ➕ Подтвердите слияние, нажав на Merge [название ветки] into [основная ветка] 6️⃣ Отправка изменений после слияния Последний шаг – отправка изменений в облако: ➕ После слияния создайте коммит, если это требуется ➕ Нажмите комбинацию Ctrl + P для публикации изменений в репозиторий на GitHub ➕ Таким образом, вы успешно создали новую ветку, внесли изменения и произвели слияние с основной веткой. Ветки позволяют нам работать над отдельными частями проекта одновременно, не мешая основной работе 📈 Пишите, как вам пост. Стоит ли добавлять текстовые пояснения к различным видеорядам, вернуть ли звуки - выбор за вами! Ну а, если вам нужно что - то от меня - Джун Джуно к вашим услугам!

🔥 От нуба до про: Гайд по работе с GitHub Desktop 🔥 🙂 Всем привет! Сегодня мы с вами разберем, как создать репозиторий на GitHub с помощью программы GitHub Desktop 📊 Пошаговая инструкция: 1️⃣ Установка GitHub Desktop Для начала необходимо скачать и установить программу GitHub Desktop 2️⃣ Авторизация После установки откройте программу и авторизуйтесь, используя свои учетные данные GitHub 3️⃣ Создание локального репозитория Для создания локального репозитория нажмите горячую клавишу Ctrl + N. Появится окно, где нужно указать путь к проекту на вашем компьютере и задать имя репозитория 4️⃣ Публикация репозитория в облако Чтобы отправить созданный локальный репозиторий в облако на GitHub, используйте комбинацию клавиш Ctrl + P. Во всплывающем окне вам будет предложено настроить параметры публикации репозитория, такие как публичность и имя 5️⃣ Отслеживание изменений Любые изменения, которые вы будете вносить локально в своем проекте, будут отображаться в GitHub Desktop. Программа покажет, какие файлы были изменены, добавлены или удалены 6️⃣Создание коммита Чтобы зафиксировать изменения в репозитории, необходимо создать коммит. Для этого нажмите кнопку Commit to [название ветки]. Введите описание внесенных изменений и подтвердите коммит 7️⃣ Отправка изменений в облако После создания коммита отправьте изменения в облако с помощью горячей клавиши Ctrl + P. Это опубликует ваш коммит на GitHub и сделает его доступным для других пользователей 📈 В следующем посте, мы рассмотрим, как создавать ветки и производить их слияние в GitHub Desktop 👀 Приятной вам работы! А если у Вас возникнут вопросы или проблемы в процессе работы, пишите в комментариях, ведь Джун Джуно к вашим услугам!

🔥 Слияние веток в GitHub: советы и рекомендации для успешной разработки 🔥 🙂 Всем привет! Слияние веток в GitHub — ключевой
🔥 Слияние веток в GitHub: советы и рекомендации для успешной разработки 🔥 🙂 Всем привет! Слияние веток в GitHub — ключевой аспект работы с Git, позволяющий разработчикам объединять изменения из разных веток. Рассмотрим, как это происходит и какие рекомендации стоит учитывать ⁉️ Что такое слияние веток? 🗣️ Слияние (merge) — это процесс объединения изменений из одной ветки в другую, чаще всего между основной (main или master) и функциональной веткой, где разработчики вносят новые изменения 🗣️ ❓ Почему слияние важно? ➕ Поддержание порядка: Слияние позволяет организовать структурированную работу над проектом ➕ Командная работа: Несколько разработчиков могут работать над различными задачами, и слияние объединяет их вклады, минимизируя конфликты ➕ Отслеживание изменений: GitHub фиксирует все изменения, что облегчает поиск ошибок и понимание истории проекта ‼️ Рекомендации по слиянию: 📌 Регулярно синхронизируйте изменения: Часто обновляйте свою функциональную ветку, чтобы снизить вероятность конфликтов 📌 Проверяйте конфликты: Внимательно разрешайте конфликты с учетом функциональности и командных соглашений 📌 Пишите четкие комментарии: При создании pull request указывайте ясные сообщения о внесенных изменениях 📌 Используйте ревью кода: Позвольте коллегам просмотреть ваши изменения перед слиянием 📈 Заключение: 💥 Слияние веток в GitHub — важный процесс, способствующий эффективной командной работе. Осваивайте слияния, разрешайте конфликты и сотрудничайте с другими, чтобы повысить качество кода и ускорить разработку. Практика и опыт — лучшие учителя, не бойтесь экспериментировать! 👀 В следующих постах, мы рассмотрим как производить операции с системой гит через специализированную программу. Ну а если заинтриговал вас - Джун Джуно к вашим услугам!

🔥 Магия веток: как Git упрощает параллельную разработку проектов 🔥 🙂 Всем привет! Сегодня очень важная тема, без которой н
🔥 Магия веток: как Git упрощает параллельную разработку проектов 🔥 🙂 Всем привет! Сегодня очень важная тема, без которой невозможно представить работу в команде. И да, вы не перепутали телеграмм канал, не бойтесь слова ветки - речь сегодня пойдет не о биологии, а об IT! 🗣️  Ветки — мощный инструмент в Git и GitHub, позволяющий разработчикам работать над проектами параллельно и без конфликтов 🗣️ ⁉️ Что такое ветки в Git? 📌 Ветка в Git — это отдельная линия разработки, позволяющая создавать версии проекта, вносить изменения и исправлять баги, не затрагивая основную кодовую базу. Основная ветка обычно называется Master или Main ❓ Зачем нужны ветки? ➕ Изоляция изменений: Позволяют разработчикам работать над разными функциями без конфликтов ➕ Упрощение работы с кодом: Облегчают тестирование и внедрение изменений ➕ Историческая документация: Каждая ветка может отражать конкретную задачу, что упрощает управление проектом ➕ Управление релизами: Используются для управления версиями приложения, с отдельными ветками для стабильных версий и будущих функций ‼️ Лучшие практики работы с ветками: ✔️ Информативные названия: Используйте названия, отражающие суть работы (например, feature/login-form) ✔️ Частое слияние: Регулярно сливайте изменения из основной ветки, чтобы минимизировать конфликты ✔️ Удаление неактуальных веток: Удаляйте ненужные ветки после завершения работы ✔️ Используйте pull requests (PR): Это помогает в код-ревью и обсуждении изменений 📈 Заключение: 💥 Работа с ветками в Git и GitHub — важная часть современного процесса разработки, упрощающая сотрудничество и поддерживающая порядок в коде. Эффективное использование веток — ключ к успешному управлению проектами в команде. Но, любимые подписчики, не единственный. Хотите узнать другие - Джун Джуно к вашим услугам!

🔥 КОММИТЫ: ДРУЗЬЯ РАЗРАБОТЧИКОВ 🔥 🙂 Всем привет! Попав на работу, ваши коллеги будут часто использовать глагол коммитить.
🔥 КОММИТЫ: ДРУЗЬЯ РАЗРАБОТЧИКОВ 🔥 🙂 Всем привет! Попав на работу, ваши коллеги будут часто использовать глагол коммитить. И чтобы не попасть в такую неловкую ситуацию, где вы начинаете сомневаться в своих силах и умениях, обязательно нужно этот пост прочесть 🗣️ Коммит в Git — это снимок состояния файлов в репозитории, сохраняющий изменения с момента последнего коммит 🗣️ 📌 Он имеет уникальный идентификатор (SHA-1 хэш) для дальнейшей ссылки, включает информацию об авторе, времени создания и комментарий к изменениям ⁉️ Зачем нужны коммиты? ✔️ Отслеживание изменений: Каждый коммит фиксирует изменения в коде, что позволяет легко откатиться к предыдущим состояниям, если новая версия оказалась некорректной или содержит ошибки ✔️ Совместная работа: При работе в команде коммиты позволяют нескольким разработчикам одновременно работать над проектом без конфликтов, с возможностью объединения изменений ✔️ Документация: Комментарии, добавляемые в коммиты, служат своеобразной документацией. Они позволяют другим членам команды понимать, что было изменено и почему ‼️ Структура коммита Каждый коммит в Git состоит из: ➕ Автор: Имя и email человека, который создал коммит ➕ Время: Дата и время создания коммита ➕ Сообщение: Краткое и содержательное описание изменений ➕ Хэш коммита: Уникальный идентификатор, позволяющий ссылаться на конкретный коммит ➕ Снимок состояния: Текущее состояние файлов и директорий в репозитории 🥇 Лучшие практики при работе с коммитами: 💥 Частота коммитов: Коммитьте изменения часто, но не слишком мелкими порциями. Это поможет отслеживать изменения и упростит процесс отката 💥 Краткие и ясные сообщения коммитов: Сообщение должно быть лаконичным и описывать, что было изменено. Лучше всего использовать активный залог. Например: "Исправлено отображение кнопки" вместо "Отображение кнопки исправлено" 💥 Группировка связанных изменений: Если вы вносите несколько связанных изменений, лучше оформить их в один коммит, вместо того чтобы разбивать на несколько. Это упрощает понимание истории изменений 💥 Тестируйте перед коммитом: Убедитесь, что ваш код работает перед тем, как создать коммит. Это поможет избежать записи нерабочего состояния 📈 Всем спасибо, кто дочитал до конца! Пишите как вам дизайн, пост. Ну а если хотите сделать свой первый в жизни мердж - Джун Джуно к вашим услугам!