Джун Джуно к вашим услугам! Путь в разработку игр | Движуха Сакутина
رفتن به کانال در Telegram
354
مشترکین
-124 ساعت
-17 روز
-530 روز
آرشیو پست ها
🔥 Кватернионы в Unity: Полное Руководство 🔥
🙂 Всем привет! Давно у нас не было математики. Кватернионы представляют собой ключевую концепцию, когда дело доходит до работы с 3D-графикой и анимацией в Unity. Они позволяют избежать проблем, связанных с использованием углов Эйлера для представления вращений, таких как "проклятие гимбалов". Давайте разберемся, что такое кватернионы и как их использовать в Unity
⁉️ Что такое Кватернионы?
🗣️ Кватернионы - это математическая система расширения комплексных чисел, которая представлена четырьмя компонентами: один вещественный компонент и три мнимых 🗣️
📌 Вместо традиционных углов Эйлера (например, pitch, yaw, roll) кватернионы позволяют представить вращение в трёхмерном пространстве без риска возникновения сингулярных точек
🔴 Формально, кватернион 𝑄 можно записать так: 𝑄=𝑤+𝑥𝑖+𝑦𝑗+𝑧𝑘, где 𝑤 , 𝑥 , 𝑦 , 𝑧 - компоненты кватерниона
‼️ Кватернионы в Unity:
В Unity класс Quaternion используется для представления вращений. Некоторые основные операции, которые можно с ним выполнять, включают:
✔️ Создание кватерниона: Кватернионы можно создавать несколькими способами, включая из углов Эйлера, из оси и угла вращения, а также путём интерполяции
✔️ Вращение объекта: Кватернионы широко используются для задания поворотов объектов в сцене
✔️ Интерполяция (Slerp):
Unity предоставляет методы для плавного интерполирования между двумя кватернионами
✔️ Композиция вращений:
Вы можете комбинировать вращения, умножая кватернионы
📈 Преимущества использования кватернионов:
1️⃣ Отсутствие гимбал-локирования:
В отличие от углов Эйлера, кватернионы не испытывают гимбал-локирования, что делает их более надёжным способом представления вращения
2️⃣ Плавное интерполирование:
Благодаря методам, таким как Slerp, кватернионы позволяют легко выполнять плавную интерполяцию между двумя поворотами
3️⃣ Компактность и эффективность:
Кватернионы используют всего четыре значения, что делает их компактными по сравнению с матрицами вращения
💥 Надеюсь, что это руководство поможет вам лучше понять и использовать кватернионы при создании впечатляющих 3D-проектов в Unity. А если не хотите ботать математику, но вам нужно понять её? - Джун Джуно к вашим услугам!
🔥 ИЗБАВИТЬСЯ ОТ КОСТЫЛЕЙ В ПРОЕКТЕ? - ЛЕГКО! 🔥
🙂 Всем привет! Пока я готовлю очень интересный пост для Независимых игр, я придумал для вас новый интерактив
📌 Буду выкладывать задачу, в которой есть определенный костыль. Ваша задача этот костыль преодолеть. Ваши решения можете выложить на GitHub и оставить ссылку в комментариях. Я обязательно отсмотрю все решения и напишу пост про все уникальные ошибки. Само собой без указаний на конкретного человека)
💥 Сама задача:
❌ Код можно посмотреть по ссылке. Сейчас система не готова к расширению. К сожалению, при добавление нового способа оплаты, нам нужно модифицировать все if'ы, которые совершают те или иные действия с разными системами
📌 Необходимо зафиксировать интерфейс платёжной системы и сокрыть их многообразие под какой-нибудь сущностью. Например, фабрикой (или фабричным методом)
‼️ Важное условие: пользователь вводит именно идентификатор платёжной системы
📈 Не стесняйтесь проявлять активность под постом, знаете какими способами. А если хотите классный и точечный разбор кода - Джун Джуно к вашим услугам!
🔥 Эффективный контроль 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 🔥
🙂 Всем привет! Сегодня мы разберем, что такое скалярное произведение векторов и как его использовать
👀 Рассмотрим пример:
🔴 У нас есть стражник, который замечает врагов, попадающих в его поле зрения, равное 180 градусам. Мы будем использовать скалярное произведение векторов: вектора направления взгляда стражника и вектора от стражника до врага. Если скалярное произведение больше нуля, враг находится в поле зрения стражника
💥 Как это работает:
➕ Универсальные библиотеки уже содержат все необходимое, для вычисления скалярного произведения можно воспользоваться методом Vector2.Dot()
➕ Этот метод принимает два вектора и возвращает число
➕ Если число меньше нуля, угол между векторами больше 90 градусов
➕ Если число больше нуля, угол между векторами меньше 90 градусов
➕ Если число равно нулю, угол равен 90 градусам
‼️ На собеседованиях часто спрашивают о скалярном произведении векторов и его вычислении:
📌 Упрощенно говоря, скалярное произведение векторов показывает, насколько сильно два вектора направлены в одну сторону. Если они направлены в противоположные стороны, результат будет -1, если в одну и ту же сторону – будет +1
📌 Чтобы вручную найти скалярное произведение, используем формулу: x₁x₂ + y₁y₂ + z₁z₂. Также можно умножить длины двух векторов и косинус угла между ними
📌 Как найти косинус между векторами? Разделите скалярное произведение на произведение длин векторов
📌 Длину вектора можно найти, сложив квадраты каждой координаты и извлёкши квадратный корень из этой суммы
📈 Надеюсь, ваши мозги не расплавились после этого поста! А если у вас есть остались вопросы - Джун Джуно к вашим услугам!
🔥 РАБОТА НА РОМАНА САКУТИНА: НАЧАЛО 🔥
🙂 Всем привет! Мы давно с вами не разговаривали. Вместо поста о разработке игр, сегодня речь пойдёт об итогах месяца.
📈 Качество постов заметно улучшилось: курс по дизайну, более разнообразные темы - всё пошло на пользу. У телеграмм канала появилась более активная аудитория. Чаще вижу от вас комментарии, включая вопросы и пожелаю, чему я безусловно очень рад!
👍 Спасибо всем огромное! Как жаль, что через экраны телефонов и мониторы компьютеров я не могу вас всех обнять : )
‼️ Но безусловно самая главная новость, которая произошла под конец месяца - Роман Сакутин взял меня на работу. Я удостоен чести писать посты в телеграмм канале Независимые игры
📌 Наша цель - продвигать начинающих разработчиков игр. Создать единое и дружное сообщество, где каждый участник сможет найти себе место, чтобы поднять геймдев с колен!
✔️ Я ответственнен не перед Романом, а перед всеми вами! Друзья, движуха только - только начинается! Сейчас самое время с новыми силами всем нам взяться за свои телеграмм каналы! Я буду постоянно следить за вашим развитием, составлять интересные подборки и посты
💥 Я даю слово объективно оценивать вас. Неважно, когда вы присоединились к сообществу, неважно знакомы ли вы со мной лично - каждый получит то, что заслуживает. Работая учителем, я находил хорошее даже в детях, кто плохо вёл себя на моих уроках, всегда выстраивая с ними диалог
🗣️ Дипломатия - величайшее достижение человечества 🗣️
⭐️ Буду всегда с вами на связи! А если у вас остались какие-то вопросы - Джун Джуно к вашим услугам!
🔥 Векторы в Unity - ни капли нудной зубрежки 🔥
🙂 Всем привет! Сегодня мы разберем понятие векторов и рассмотрим базовые операции над ними, используя примеры из Unity Framework
💥 Векторы в Unity Framework
В Unity, структура Vector3 представляет собой набор из трех чисел (𝑥,𝑦,𝑧), которые могут описывать различные аспекты объекта в трехмерном пространстве. Важно понимать, что мы сами решаем, какой смысл в них вкладывать. Давайте рассмотрим несколько примеров:
‼️ Примеры использования векторов:
➕ Позиция: Вектор может описывать положение объекта относительного мирового (глобального) или локального (относительно родителя) нуля. Например, позиция (3,5,7) указывает на то, что объект находится на 3 единицы вправо, 5 единиц вверх и 7 единиц вперед от точки отсчета
➕ Поворот: Вектор может также описывать угол поворота объекта вокруг осей 𝑋,𝑌 и 𝑍. Например, вектор (30,0,0) означает, что объект повернут на 30 градусов вокруг оси 𝑋
‼️ Основные операции с векторами:
➕ Сложение векторов:
Допустим, у нас есть объект, находящийся в точке с координатами (0, 0, 0). Каждую секунду мы хотим перемещать его на одну единицу вправо. Для этого можно использовать сложение векторов. Сложение векторов выполняется поэлементно: 𝑋 складывается с 𝑋, 𝑌 с 𝑌, 𝑍 с 𝑍
✖️ Умножение вектора на скаляр:
Чтобы контролировать скорость передвижения объекта, можно умножить вектор направления на число (скаляр). Умножение вектора на скаляр происходит поэлементно: каждая компонента вектора умножается на это число
📈 Заключение:
Векторы представляют собой важный инструмент в Unity и многих других сферах. Они позволяют легко оперировать положением, направлением, скоростью и другими характеристиками объектов в трехмерном пространстве. Поэтому, если вы хотите научиться работать с векторами и не только - Джун Джуно к вашим услугам!
🔥 Математика в GameDev 🔥
🙂 Приветствую всех! Вы когда-нибудь задумывались, как обычные строки кода превращаются в захватывающие виртуальные миры? Ответ кроется в математике. Сегодня я расскажу о её роли в разработке игр
‼️ Математика служит основой для создания как визуальных эффектов, так и игровой механики. От определения движения персонажа до моделирования физических взаимодействий — всё это достигается благодаря математическим концепциям
📈 Ключевые области, где математика играет важную роль:
1️⃣ Алгоритмы и игровые механики
Алгоритмы управляют передвижением персонажей и поведением противников, часто используя модели, такие как алгоритм A* для поиска пути
2️⃣ Физика и симуляции
Физические движки создают реалистичные взаимодействия и поведения объектов в игре, используя законы физики
💥 В будущем мы детально рассмотрим ключевые математические концепции, которые лежат в основе разработки игр, а именно:
➕ Базовые операции над векторами
Понятие вектора и базовые операции с векторами, которые используются в играх для описания движения и направления
➕ Скалярное произведение векторов
Как скалярное произведение помогает определять углы между векторами и влияет на различные аспекты игровой механики
➕ Углы и расчет углов
Вычисление углов между векторами для правильного отображения поворотов и ориентации объектов в игре
‼️ Эти темы помогут вам понять, как абстрактные математические концепции применяются на практике, чтобы создавать увлекательные и правдоподобные игровые миры. А если вы хотите узнать тайны математики в GameDev - Джун Джуно к вашим услугам!
🔥 Оптимизация и Уникальные Механики: Настройка Матрицы Пересечения Физики в Игровом Проекте 🔥
🙂 Всем привет! Сегодня мы поговорим о настройке матрицы пересечения физики - важном аспекте, который может существенно повлиять на производительность вашего игрового проекта и его уникальность
⁉️ Как настроить матрицу пересечения физики
Процесс настройки достаточно прост и интуитивно понятен:
1️⃣ В верхней панели главного окна редактора выберите Edit
2️⃣ В появившемся меню нажмите Project Settings....
3️⃣ В открывшемся окне найдите вкладку Physics и прокрутите вниз до раздела Collision Matrix
4️⃣ В этом разделе вы увидите расписанную матрицу пересечения слоёв в виде треугольной таблицы
📌 Каждая строка и столбец представляют собой определённый слой. Если на пересечении вертикального и горизонтального слоя стоит галочка, это означает, что физические взаимодействия между объектами на этих слоях будут происходить. Вы можете управлять этими взаимодействиями, устанавливая или убирая галочки
⁉️ Как изменить слой у объекта
Для изменения слоя у определённого объекта выполните следующие шаги:
➕ Выберите объект в сцене
➕ В правом верхнем углу окна Inspector найдите вкладку Layer
‼️ По умолчанию все объекты имеют слой Default, но вы можете выбрать подходящий слой из выпадающего списка или создать новый слой
📌 Чтобы создать новый слой, выполните следующие действия:
✔️ В выпадающем списке Layer выберите Add Layer....
✔️ В открывшемся меню добавьте новый слой и присвойте ему имя.
⁉️ Зачем это нужно
📈 Оптимизация проекта: Правильная настройка матрицы пересечения позволяет значительно снизить количество обрабатываемых столкновений, что непосредственно улучшает общую производительность вашего проекта. Меньшее количество ненужных вычислений освобождает ресурсы для более важных задач
💥 Создание уникальных механик взаимодействия: Настройка слоёв открывает возможность создать уникальные игровые механики. Например, некоторые объекты могут проходить сквозь стены или не взаимодействовать с определёнными другими объектами, что позволяет вам внедрять интересные и новаторские решения в дизайн уровней и геймплей
👀 В результате правильная настройка матрицы пересечения физики не только улучшает производительность вашего проекта, но и предоставляет инструменты для создания уникальных игровых механик, которые могут выделить ваш проект среди других. А если хотите, чтобы и код выделялся на фоне других - Джун Джуно к вашим услугам!
+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 — ключевой аспект работы с Git, позволяющий разработчикам объединять изменения из разных веток. Рассмотрим, как это происходит и какие рекомендации стоит учитывать
⁉️ Что такое слияние веток?
🗣️ Слияние (merge) — это процесс объединения изменений из одной ветки в другую, чаще всего между основной (main или master) и функциональной веткой, где разработчики вносят новые изменения 🗣️
❓ Почему слияние важно?
➕ Поддержание порядка: Слияние позволяет организовать структурированную работу над проектом
➕ Командная работа: Несколько разработчиков могут работать над различными задачами, и слияние объединяет их вклады, минимизируя конфликты
➕ Отслеживание изменений: GitHub фиксирует все изменения, что облегчает поиск ошибок и понимание истории проекта
‼️ Рекомендации по слиянию:
📌 Регулярно синхронизируйте изменения: Часто обновляйте свою функциональную ветку, чтобы снизить вероятность конфликтов
📌 Проверяйте конфликты: Внимательно разрешайте конфликты с учетом функциональности и командных соглашений
📌 Пишите четкие комментарии: При создании pull request указывайте ясные сообщения о внесенных изменениях
📌 Используйте ревью кода: Позвольте коллегам просмотреть ваши изменения перед слиянием
📈 Заключение:
💥 Слияние веток в GitHub — важный процесс, способствующий эффективной командной работе. Осваивайте слияния, разрешайте конфликты и сотрудничайте с другими, чтобы повысить качество кода и ускорить разработку. Практика и опыт — лучшие учителя, не бойтесь экспериментировать!
👀 В следующих постах, мы рассмотрим как производить операции с системой гит через специализированную программу. Ну а если заинтриговал вас - Джун Джуно к вашим услугам!
🔥 Магия веток: как Git упрощает параллельную разработку проектов 🔥
🙂 Всем привет! Сегодня очень важная тема, без которой невозможно представить работу в команде. И да, вы не перепутали телеграмм канал, не бойтесь слова ветки - речь сегодня пойдет не о биологии, а об IT!
🗣️ Ветки — мощный инструмент в Git и GitHub, позволяющий разработчикам работать над проектами параллельно и без конфликтов 🗣️
⁉️ Что такое ветки в Git?
📌 Ветка в Git — это отдельная линия разработки, позволяющая создавать версии проекта, вносить изменения и исправлять баги, не затрагивая основную кодовую базу. Основная ветка обычно называется Master или Main
❓ Зачем нужны ветки?
➕ Изоляция изменений: Позволяют разработчикам работать над разными функциями без конфликтов
➕ Упрощение работы с кодом: Облегчают тестирование и внедрение изменений
➕ Историческая документация: Каждая ветка может отражать конкретную задачу, что упрощает управление проектом
➕ Управление релизами: Используются для управления версиями приложения, с отдельными ветками для стабильных версий и будущих функций
‼️ Лучшие практики работы с ветками:
✔️ Информативные названия: Используйте названия, отражающие суть работы (например, feature/login-form)
✔️ Частое слияние: Регулярно сливайте изменения из основной ветки, чтобы минимизировать конфликты
✔️ Удаление неактуальных веток: Удаляйте ненужные ветки после завершения работы
✔️ Используйте pull requests (PR): Это помогает в код-ревью и обсуждении изменений
📈 Заключение:
💥 Работа с ветками в Git и GitHub — важная часть современного процесса разработки, упрощающая сотрудничество и поддерживающая порядок в коде. Эффективное использование веток — ключ к успешному управлению проектами в команде. Но, любимые подписчики, не единственный. Хотите узнать другие - Джун Джуно к вашим услугам!
🔥 КОММИТЫ: ДРУЗЬЯ РАЗРАБОТЧИКОВ 🔥
🙂 Всем привет! Попав на работу, ваши коллеги будут часто использовать глагол коммитить. И чтобы не попасть в такую неловкую ситуацию, где вы начинаете сомневаться в своих силах и умениях, обязательно нужно этот пост прочесть
🗣️ Коммит в Git — это снимок состояния файлов в репозитории, сохраняющий изменения с момента последнего коммит 🗣️
📌 Он имеет уникальный идентификатор (SHA-1 хэш) для дальнейшей ссылки, включает информацию об авторе, времени создания и комментарий к изменениям
⁉️ Зачем нужны коммиты?
✔️ Отслеживание изменений: Каждый коммит фиксирует изменения в коде, что позволяет легко откатиться к предыдущим состояниям, если новая версия оказалась некорректной или содержит ошибки
✔️ Совместная работа: При работе в команде коммиты позволяют нескольким разработчикам одновременно работать над проектом без конфликтов, с возможностью объединения изменений
✔️ Документация: Комментарии, добавляемые в коммиты, служат своеобразной документацией. Они позволяют другим членам команды понимать, что было изменено и почему
‼️ Структура коммита
Каждый коммит в Git состоит из:
➕ Автор: Имя и email человека, который создал коммит
➕ Время: Дата и время создания коммита
➕ Сообщение: Краткое и содержательное описание изменений
➕ Хэш коммита: Уникальный идентификатор, позволяющий ссылаться на конкретный коммит
➕ Снимок состояния: Текущее состояние файлов и директорий в репозитории
🥇 Лучшие практики при работе с коммитами:
💥 Частота коммитов: Коммитьте изменения часто, но не слишком мелкими порциями. Это поможет отслеживать изменения и упростит процесс отката
💥 Краткие и ясные сообщения коммитов: Сообщение должно быть лаконичным и описывать, что было изменено. Лучше всего использовать активный залог. Например: "Исправлено отображение кнопки" вместо "Отображение кнопки исправлено"
💥 Группировка связанных изменений: Если вы вносите несколько связанных изменений, лучше оформить их в один коммит, вместо того чтобы разбивать на несколько. Это упрощает понимание истории изменений
💥 Тестируйте перед коммитом: Убедитесь, что ваш код работает перед тем, как создать коммит. Это поможет избежать записи нерабочего состояния
📈 Всем спасибо, кто дочитал до конца! Пишите как вам дизайн, пост. Ну а если хотите сделать свой первый в жизни мердж - Джун Джуно к вашим услугам!
