This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Создаём свой первый Ragdoll в Unity за 5 минут
Сохраняй гайд — оживи твоего персонажа падением как в GTA или ролевых играх!
1️⃣ Подготовка модели
• Убедись, что у персонажа есть аниматор и скелет
• Rig должен быть настроен на Humanoid (проверь в Import Settings)
2️⃣ Автоматическое создание Ragdoll
• Перейди в GameObject > 3D Object > Ragdoll...
• В открывшемся окне перетащи кости персонажа в соответствующие слоты
• Обязательно заполни:
- Hip (таз)
- Spine (позвоночник)
- Head (голова)
- Руки и ноги
3️⃣ Настройка Joints
• Unity сама создаст Character Joint на всех костях
• Проверь пределы вращения (Limits) — обычно оставляем по умолчанию
• Силу пружины (Spring) и демпфирования (Dumper) можно настроить позже
4️⃣ Добавляем физику
• На корневом объекте персонажа должен быть Rigidbody
• Убедись, что все части Ragdoll имеют Colliders (создаются автоматически)
5️⃣ Тестируем!
• Выключи компонент Animator на персонаже
• Включи использование гравитации в Rigidbody
• Запусти сцену — персонаж должен упасть под действием физики
💡 Простой скрипт для включения Ragdoll в runtime:
✅ Готово! Теперь твой персонаж реагирует на выстрелы, взрывы и падения по законам физики.
💬 Получилось с первого раза? Делись в комментах!
🔔 Подпишись — ещё больше геймдев-лайфхаков ждут тебя!
👉Akrus Games | Unity
Сохраняй гайд — оживи твоего персонажа падением как в GTA или ролевых играх!
1️⃣ Подготовка модели
• Убедись, что у персонажа есть аниматор и скелет
• Rig должен быть настроен на Humanoid (проверь в Import Settings)
2️⃣ Автоматическое создание Ragdoll
• Перейди в GameObject > 3D Object > Ragdoll...
• В открывшемся окне перетащи кости персонажа в соответствующие слоты
• Обязательно заполни:
- Hip (таз)
- Spine (позвоночник)
- Head (голова)
- Руки и ноги
3️⃣ Настройка Joints
• Unity сама создаст Character Joint на всех костях
• Проверь пределы вращения (Limits) — обычно оставляем по умолчанию
• Силу пружины (Spring) и демпфирования (Dumper) можно настроить позже
4️⃣ Добавляем физику
• На корневом объекте персонажа должен быть Rigidbody
• Убедись, что все части Ragdoll имеют Colliders (создаются автоматически)
5️⃣ Тестируем!
• Выключи компонент Animator на персонаже
• Включи использование гравитации в Rigidbody
• Запусти сцену — персонаж должен упасть под действием физики
💡 Простой скрипт для включения Ragdoll в runtime:
public void EnableRagdoll()
{
// Включаем физику для всех частей тела
Rigidbody[] bodies = GetComponentsInChildren<Rigidbody>();
foreach(Rigidbody rb in bodies)
{
rb.isKinematic = false; // Разрешаем физике управлять телом
}
// Выключаем аниматор, чтобы он не конфликтовал с физикой
GetComponent<Animator>().enabled = false;
}
✅ Готово! Теперь твой персонаж реагирует на выстрелы, взрывы и падения по законам физики.
💬 Получилось с первого раза? Делись в комментах!
🔔 Подпишись — ещё больше геймдев-лайфхаков ждут тебя!
👉Akrus Games | Unity
🔥12 4 3 1
Please open Telegram to view this post
VIEW IN TELEGRAM
Что вы думаете про вайбкодинг?
На 400 подписчиков что-то будет. супер годное
На 400 подписчиков что-то будет. супер годное
Anonymous Poll
46%
зло😒
31%
добро🙂
23%
что это?👌
Вот сборка постов по темам. ищите что вам нужно!
1. Шейдеры и Визуальные Эффекты
✅ Что же такое пост обработка в Unity? https://t.me/AkrusUnity/529
✅ 💧 Шейдеры воды в Unity: основы создания https://t.me/AkrusUnity/606
✅ ⚡️ 2 крутых шейдера, которые ты сделаешь в Shader Graph за 5 минут https://t.me/AkrusUnity/671
✅ Particle System в Unity: Создавай эффекты за минуты https://t.me/AkrusUnity/546
2. Искусственный Интеллект (ИИ) и Навигация
✅ NavMesh в Unity: Искусственный Интеллект и Навигация https://t.me/AkrusUnity/541
✅ 👁 Как создать «зрение» ИИ врага в Unity? https://t.me/AkrusUnity/552
3. Работа с 2D и Анимацией
✅ Unity Animator: Any State — гибкие переходы https://t.me/AkrusUnity/561
✅ Unity: Sprite Mode Multiple - Разрезаем спрайт-листы! https://t.me/AkrusUnity/575
4. Геймдев-архитектура и Паттерны проектирования
✅ Unity ECS на практике: Пишем первую систему https://t.me/AkrusUnity/586
✅ Pattern Matching в C#: Property и Tuple patterns https://t.me/AkrusUnity/595
✅ Паттерн «Состояние» (State): Умное управление поведением https://t.me/AkrusUnity/604
✅ Чистый код в Unity: правила для читаемости и поддержки https://t.me/AkrusUnity/661
5. Инструменты и Рабочий Процесс в Unity
✅ Unity Terrain: Создавай огромные миры за минуты https://t.me/AkrusUnity/548
✅ Шумы в Unity: генерация миров и не только https://t.me/AkrusUnity/666
✅ Адаптивный UI в Unity: как избежать поломок https://t.me/AkrusUnity/663
✅ Изменяемое окно игры в Unity https://t.me/AkrusUnity/665
✅ Выбор IDE для Unity: инструменты для кода https://t.me/AkrusUnity/655
✅ ⚡️ Unity: Переходи на New Input System https://t.me/AkrusUnity/673
6. Советы по Развитию и Карьере
✅ Unity: что надо знать каждому мидлу https://t.me/AkrusUnity/620
✅ Unity: какие мини-проекты должен попробовать сделать каждый https://t.me/AkrusUnity/625
✅ Unity: по каким параметрам тестировать проект https://t.me/AkrusUnity/635
7. Основы C#
🔁 Что такое ref и out в C#? https://t.me/AkrusUnity/387
1. Шейдеры и Визуальные Эффекты
✅ Что же такое пост обработка в Unity? https://t.me/AkrusUnity/529
✅ 💧 Шейдеры воды в Unity: основы создания https://t.me/AkrusUnity/606
✅ ⚡️ 2 крутых шейдера, которые ты сделаешь в Shader Graph за 5 минут https://t.me/AkrusUnity/671
✅ Particle System в Unity: Создавай эффекты за минуты https://t.me/AkrusUnity/546
2. Искусственный Интеллект (ИИ) и Навигация
✅ NavMesh в Unity: Искусственный Интеллект и Навигация https://t.me/AkrusUnity/541
✅ 👁 Как создать «зрение» ИИ врага в Unity? https://t.me/AkrusUnity/552
3. Работа с 2D и Анимацией
✅ Unity Animator: Any State — гибкие переходы https://t.me/AkrusUnity/561
✅ Unity: Sprite Mode Multiple - Разрезаем спрайт-листы! https://t.me/AkrusUnity/575
4. Геймдев-архитектура и Паттерны проектирования
✅ Unity ECS на практике: Пишем первую систему https://t.me/AkrusUnity/586
✅ Pattern Matching в C#: Property и Tuple patterns https://t.me/AkrusUnity/595
✅ Паттерн «Состояние» (State): Умное управление поведением https://t.me/AkrusUnity/604
✅ Чистый код в Unity: правила для читаемости и поддержки https://t.me/AkrusUnity/661
5. Инструменты и Рабочий Процесс в Unity
✅ Unity Terrain: Создавай огромные миры за минуты https://t.me/AkrusUnity/548
✅ Шумы в Unity: генерация миров и не только https://t.me/AkrusUnity/666
✅ Адаптивный UI в Unity: как избежать поломок https://t.me/AkrusUnity/663
✅ Изменяемое окно игры в Unity https://t.me/AkrusUnity/665
✅ Выбор IDE для Unity: инструменты для кода https://t.me/AkrusUnity/655
✅ ⚡️ Unity: Переходи на New Input System https://t.me/AkrusUnity/673
6. Советы по Развитию и Карьере
✅ Unity: что надо знать каждому мидлу https://t.me/AkrusUnity/620
✅ Unity: какие мини-проекты должен попробовать сделать каждый https://t.me/AkrusUnity/625
✅ Unity: по каким параметрам тестировать проект https://t.me/AkrusUnity/635
7. Основы C#
🔁 Что такое ref и out в C#? https://t.me/AkrusUnity/387
🔥18 3 3 1 1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁11 6❤2
Сохрани — пригодится при каждом тесте игры!
📌 Пишет сообщение в консоль.
➕ Отличный способ быстро проверить, вызывается ли код и какие значения у переменных.
🟡 Жёлтое сообщение в консоли.
➕ Удобно для вывода нефатальных ошибок, которые стоит учитывать.
🔴 Красное сообщение.
➕ Используется для критических ошибок, на которые нужно немедленно обратить внимание.
⏸️ Приостанавливает выполнение игры в редакторе в момент вызова.
➕ Удобно для анализа состояния объекта в рантайме.
⚠️ Не работает в билде!
🔍 Рисует линии в Scene View во время игры.
➕ Помогает визуализировать направления, трассировку лучей и отладку физики.
⚠️ Линии видны только в Scene View, не в Game View и не в билде.
🔹 БОНУС — Debug.Assert(condition);
🛑 Проверяет условие, и если оно ложно — выводит ошибку и останавливает игру (в редакторе).
➕ Идеально для отладки инвариантов и неожиданных состояний.
💬 Поделись с другом, который не понимает, почему ничего не работает
🔔 Подпишись на канал, чтобы не пропускать мощные фишки по Unity и C#
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11🔥4 2 1
Сохрани и не путай больше никогда!
🕹 Update()
⚙️ FixedUpdate()
🎞 LateUpdate()
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😱12 4 3 2❤1🔥1
⚡️ Unity: шпаргалка по Input
Сохрани, чтобы управление в твоей игре всегда работало чётко! Два основных подхода — старый и новый.
1️⃣ Классический Input Manager (Input.GetKey)
Старый добрый способ, который все знают. Идеален для быстрого прототипа.
✅ Быстро и понятно
❌ Жёстко зашито в коде, сложно переключать схемы управления
2️⃣ Новая система Input System (Unity Package)
Мощный и гибкий инструмент. Нужно поставить через Package Manager.
📌 Сначала настрой Input Actions:
• Создай Action Map (например, "Player")
• Добавь Actions ("Move", "Jump", "Fire")
• Назначь кнопки (WASD, Space, Mouse)
✅ Переключаемые схемы управления (геймпад, клавиатура)
✅ Автоматическая ремаппинг кнопок
❌ Нужно время на настройку
🔥 Важно:
• Для нового Input System не забудь
• В Build Settings → Player → Active Input Handling выбери "Both"
💬 Какую систему используешь ты? Классику или новую?
🔔 Подпишись — впереди ещё много шпаргалок по Unity и C#!
👉Akrus Games | Unity
Сохрани, чтобы управление в твоей игре всегда работало чётко! Два основных подхода — старый и новый.
1️⃣ Классический Input Manager (Input.GetKey)
Старый добрый способ, который все знают. Идеален для быстрого прототипа.
// Движение
float horizontal = Input.GetAxis("Horizontal");
float vertical = Input.GetAxis("Vertical");
// Прыжок
if (Input.GetKeyDown(KeyCode.Space))
{
Jump();
}
// ЛКМ
if (Input.GetMouseButtonDown(0))
{
Shoot();
}
✅ Быстро и понятно
❌ Жёстко зашито в коде, сложно переключать схемы управления
2️⃣ Новая система Input System (Unity Package)
Мощный и гибкий инструмент. Нужно поставить через Package Manager.
📌 Сначала настрой Input Actions:
• Создай Action Map (например, "Player")
• Добавь Actions ("Move", "Jump", "Fire")
• Назначь кнопки (WASD, Space, Mouse)
using UnityEngine.InputSystem;
// Чтение вектора движения
private void OnMove(InputValue value)
{
Vector2 moveInput = value.Get<Vector2>();
// перемещаем объект
}
// Обработка одиночного нажатия
private void OnJump(InputValue value)
{
if (value.isPressed) Jump();
}
✅ Переключаемые схемы управления (геймпад, клавиатура)
✅ Автоматическая ремаппинг кнопок
❌ Нужно время на настройку
🔥 Важно:
• Для нового Input System не забудь
PlayerInput компонент на объект• В Build Settings → Player → Active Input Handling выбери "Both"
💬 Какую систему используешь ты? Классику или новую?
🔔 Подпишись — впереди ещё много шпаргалок по Unity и C#!
👉Akrus Games | Unity
❤6
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10 4 2 1 1
Геймдев папка с нобисом и все сообществом!
Вступайте и получите свежие гайды, новости и т.д.
https://t.me/addlist/w8ubGmPpqFNhYWQy
Вступайте и получите свежие гайды, новости и т.д.
https://t.me/addlist/w8ubGmPpqFNhYWQy
❤5😱2 2 2 2 1
⚡️ Два подхода к организации кода в Unity
Сохрани, чтобы не наступить на грабли новичка и не запутаться в собственном проекте.
✅ Плюсы разделения скриптов:
🔹 Переиспользуемость кода
PlayerMovement, EnemyAI, Inventory — каждый скрипт делает одно дело. Можно брать готовый Movement и использовать в разных объектах.
🔹 Проще тестировать и исправлять
Нашел баг в прыжке? Открываешь только PlayerJump.cs. Не нужно копаться в 1000+ строках монолита.
🔹 Чистая архитектура
Легче расширять: добавил новый скрипт — новая механика готова. Не ломаешь существующий код.
❌ Минусы чрезмерного разделения:
🔸 Сложность управления
10+ скриптов на одном объекте? Придется настраивать связи между ними через GetComponent<> или события.
🔸 Потеря производительности
Частые вызовы GetComponent<> и межскриптовые события могут тормозить, особенно на мобильных устройствах.
🔸 "Ад зависимостей"
Скрипт А зависит от Б, Б от В, В от А... Запутал сам себя.
💡 Золотая середина:
1️⃣ Разделяй по ответственности
Движение → отдельный скрипт
Стрельба → отдельный скрипт
Здоровье → отдельный скрипт
2️⃣ Но не дроби без нужды
Не создавай 10 скриптов для 10 кнопок. Логика UI может жить в одном скрипте.
3️⃣ Используй компонентный подход Unity
Это его философия! Каждый скрипт — компонент с конкретной задачей.
📌 Вывод: разделяй логично, но не фанатично. 3-5 скриптов лучше 15 и лучше 1 монстра на 2000 строк.
💬 А как ты организуешь код? Пиши в комментах!
🔔 Подпишись — еще больше про архитектуру, C# и юнити-лайфхаки.
👉Akrus Games | Unity
Сохрани, чтобы не наступить на грабли новичка и не запутаться в собственном проекте.
✅ Плюсы разделения скриптов:
🔹 Переиспользуемость кода
PlayerMovement, EnemyAI, Inventory — каждый скрипт делает одно дело. Можно брать готовый Movement и использовать в разных объектах.
🔹 Проще тестировать и исправлять
Нашел баг в прыжке? Открываешь только PlayerJump.cs. Не нужно копаться в 1000+ строках монолита.
🔹 Чистая архитектура
Легче расширять: добавил новый скрипт — новая механика готова. Не ломаешь существующий код.
❌ Минусы чрезмерного разделения:
🔸 Сложность управления
10+ скриптов на одном объекте? Придется настраивать связи между ними через GetComponent<> или события.
🔸 Потеря производительности
Частые вызовы GetComponent<> и межскриптовые события могут тормозить, особенно на мобильных устройствах.
🔸 "Ад зависимостей"
Скрипт А зависит от Б, Б от В, В от А... Запутал сам себя.
💡 Золотая середина:
1️⃣ Разделяй по ответственности
Движение → отдельный скрипт
Стрельба → отдельный скрипт
Здоровье → отдельный скрипт
2️⃣ Но не дроби без нужды
Не создавай 10 скриптов для 10 кнопок. Логика UI может жить в одном скрипте.
3️⃣ Используй компонентный подход Unity
Это его философия! Каждый скрипт — компонент с конкретной задачей.
📌 Вывод: разделяй логично, но не фанатично. 3-5 скриптов лучше 15 и лучше 1 монстра на 2000 строк.
💬 А как ты организуешь код? Пиши в комментах!
🔔 Подпишись — еще больше про архитектуру, C# и юнити-лайфхаки.
👉Akrus Games | Unity
Please open Telegram to view this post
VIEW IN TELEGRAM
😁15 5 2 2
⚙️ Unity: настройки камеры — 2 ключевых параметра, которые ты обязан знать
Сохрани, чтобы твоя камера всегда работала как надо — и в 2D, и в 3D!
1️⃣ Field of View (FOV) — твой главный инструмент глубины
📌 Что это: Угол обзора камеры в градусах.
• 60° — стандарт, похоже на человеческое зрение
• 90°+ — экшн-кадр, видно больше вокруг (отлично для шутеров)
• 30°- — телеобъектив, акцент на детали
💡 Совет: В 3D увеличивай FOV, когда нужна скорость и динамика. В 2D-платформере уменьшай для кинематографичного кадра.
2️⃣ Projection: Orthographic vs Perspective
🎯 Perspective (Перспектива)
• Объекты уменьшаются с расстоянием — как в реальной жизни
• Идеально для 3D-игр, гонок, RPG
• Настрой глубину через Clipping Planes → Far меньше 1000, если не нужны далёкие объекты
🎯 Orthographic (Ортографическая)
• Нет перспективы, размер объектов не меняется
• Must have для 2D-игр, пиксель-арта, интерфейсов, изометрических игр
• Размер сцены контролируй через Size
💡 Лайфхак: В ортографической камере Size = половина высоты экрана в юнитах. Для пиксель-перфекта выставляй Size = (высота экрана в пикселях) / (2 * Pixels Per Unit)
✅ Всего два параметра — а результат: кадр, который не режет глаза и работает как задумано.
💬 А ты используешь ортографию или перспективу в своих проектах?
🔔 Подпишись — впереди разбор Cinemachine и скриптов для камеры.
👉Akrus Games | Unity
Сохрани, чтобы твоя камера всегда работала как надо — и в 2D, и в 3D!
1️⃣ Field of View (FOV) — твой главный инструмент глубины
📌 Что это: Угол обзора камеры в градусах.
• 60° — стандарт, похоже на человеческое зрение
• 90°+ — экшн-кадр, видно больше вокруг (отлично для шутеров)
• 30°- — телеобъектив, акцент на детали
💡 Совет: В 3D увеличивай FOV, когда нужна скорость и динамика. В 2D-платформере уменьшай для кинематографичного кадра.
2️⃣ Projection: Orthographic vs Perspective
🎯 Perspective (Перспектива)
• Объекты уменьшаются с расстоянием — как в реальной жизни
• Идеально для 3D-игр, гонок, RPG
• Настрой глубину через Clipping Planes → Far меньше 1000, если не нужны далёкие объекты
🎯 Orthographic (Ортографическая)
• Нет перспективы, размер объектов не меняется
• Must have для 2D-игр, пиксель-арта, интерфейсов, изометрических игр
• Размер сцены контролируй через Size
💡 Лайфхак: В ортографической камере Size = половина высоты экрана в юнитах. Для пиксель-перфекта выставляй Size = (высота экрана в пикселях) / (2 * Pixels Per Unit)
✅ Всего два параметра — а результат: кадр, который не режет глаза и работает как задумано.
💬 А ты используешь ортографию или перспективу в своих проектах?
🔔 Подпишись — впереди разбор Cinemachine и скриптов для камеры.
👉Akrus Games | Unity
❤8🔥5 2🎄1 1
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🔥4 3 1 1
Stack Overflow не умер, он делает мощный камбэк
Да, наш любимый Stack Overflow снова в игре. Они запустили Stack Overflow AI
На первый взгляд это может напоминать ChatGPT или другие AI-инструменты, но ключевое отличие в том, что он работает на базе огромной базы знаний разработчиков, которую Stack Overflow собирал годами. Это обеспечит быстрые и точные ответы
Да, наш любимый Stack Overflow снова в игре. Они запустили Stack Overflow AI
На первый взгляд это может напоминать ChatGPT или другие AI-инструменты, но ключевое отличие в том, что он работает на базе огромной базы знаний разработчиков, которую Stack Overflow собирал годами. Это обеспечит быстрые и точные ответы
❤8 5😱2 2 2 1
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤15😁7😱2
Архитектурные ошибки, которые мешают скейлиться
📌 Вот что часто делает мидл, когда ещё не думает как senior:
1️⃣ Всё в одном MonoBehaviour
📌 Разделяй по слоям:
• Model — данные (например, ScriptableObject, runtime state)
• View — отображение и UI (MonoBehaviour с UI-ссылками)
• Controller/Manager — логика и управление
🧠 Это основа MVC / MVVM / ECS — двигайся в сторону слабосвязной архитектуры.
2️⃣ Прямые ссылки между объектами
📌 Лучше через:
• Action и event-события
• интерфейсы (например, IDamageable)
• ScriptableObject-сигналы (EventChannel)
• Service Locator / Dependency Injection (Zenject, Extenject)
3️⃣ Нет централизованного GameManager или FSM
📌 Когда логика разбросана по сцене — сложно дебажить, сохранять и управлять состоянием игры.
🛠️ Сделай GameState-машину:
GameState.Menu → GameState.Playing → GameState.Paused
Добавь централизованную точку входа:
• UIManager
• SceneController
• AudioManager
4️⃣ Мешанина из public переменных
📌 Используй:
🧠 Это защищает от случайных изменений и делает код самодокументируемым.
5️⃣ Нет разделения Editor и Runtime
📌 Всё, что относится к редактору (например, EditorGUILayout, Handles, MenuItem) — в папку /Editor и под #if UNITY_EDITOR.
Если этого не сделать:
• код попадёт в билд (ошибка)
• появится ненужный вес
• сломается на мобильных/в WebGL
💡 Средний уровень — это уже мышление архитектора: ты создаёшь систему, которую другие смогут поддерживать, расширять и не бояться трогать.
💬 Хочешь пост про конкретные архитектурные подходы: EventBus, ScriptableSignals или Scene Flow?
🔔 Подписывайся — впереди про UI-архитектуру, async-менеджеры и паттерны уровня Senior
👉Akrus Games | Unity
📌 Вот что часто делает мидл, когда ещё не думает как senior:
1️⃣ Всё в одном MonoBehaviour
// И логика, и UI, и данные — всё в одном классе 😵
📌 Разделяй по слоям:
• Model — данные (например, ScriptableObject, runtime state)
• View — отображение и UI (MonoBehaviour с UI-ссылками)
• Controller/Manager — логика и управление
🧠 Это основа MVC / MVVM / ECS — двигайся в сторону слабосвязной архитектуры.
2️⃣ Прямые ссылки между объектами
enemy.healthBar.SetValue(enemy.hp); // жёсткая связь
📌 Лучше через:
• Action и event-события
• интерфейсы (например, IDamageable)
• ScriptableObject-сигналы (EventChannel)
• Service Locator / Dependency Injection (Zenject, Extenject)
3️⃣ Нет централизованного GameManager или FSM
📌 Когда логика разбросана по сцене — сложно дебажить, сохранять и управлять состоянием игры.
🛠️ Сделай GameState-машину:
GameState.Menu → GameState.Playing → GameState.Paused
Добавь централизованную точку входа:
• UIManager
• SceneController
• AudioManager
4️⃣ Мешанина из public переменных
public int hp; // открыто для всех
📌 Используй:
[SerializeField] private int hp;
public int HP => hp;
🧠 Это защищает от случайных изменений и делает код самодокументируемым.
5️⃣ Нет разделения Editor и Runtime
📌 Всё, что относится к редактору (например, EditorGUILayout, Handles, MenuItem) — в папку /Editor и под #if UNITY_EDITOR.
Если этого не сделать:
• код попадёт в билд (ошибка)
• появится ненужный вес
• сломается на мобильных/в WebGL
💡 Средний уровень — это уже мышление архитектора: ты создаёшь систему, которую другие смогут поддерживать, расширять и не бояться трогать.
💬 Хочешь пост про конкретные архитектурные подходы: EventBus, ScriptableSignals или Scene Flow?
🔔 Подписывайся — впереди про UI-архитектуру, async-менеджеры и паттерны уровня Senior
👉Akrus Games | Unity
❤7🔥3🎄2