Akrus Games | Unity
2.95K subscribers
408 photos
89 videos
11 files
351 links
Самые годные лайфхаки по unity c#

Сотрудничество/реклама/помощь @Akrus001
Download Telegram
И в правду кто этот идиот?
точно не я
Please open Telegram to view this post
VIEW IN TELEGRAM
105511
🔍 Godot vs Unity: что выбрать в 2025?

Ключевые различия:

• Движок:
Unity — промышленный стандарт для 3D и мобильных игр.
Godot — легкий, открытый движок с акцентом на 2D и простоту.

• Язык:
Unity — C# (строгая типизация, большой синтаксис).
Godot — GDScript (Python-подобный, легкий для новичков) + C#.

• Графика:
Unity — мощный рендеринг, URP/HDRP, шейдеры Shader Graph.
Godot — Vulkan/Metal, собственный язык шейдеров, проще настройка.

• Сообщество:
Unity — огромная база tutorials, ассетов, форумов.
Godot — быстрорастущее комьюнити, но материалов меньше.


Когда что выбрать?
→ Unity: если нужна графика AAA, кроссплатформенность или работа в студии.
→ Godot: для инди-проектов, быстрого прототипирования.

Оба движка достойны. Выбор зависит от задач, опыта и предпочтений! 🎮

#Unity #Godot #GameDev #Gamedevelopment
8🔥432
Ооооооо. Скоро будет обновление real life🎧
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥51
Присылайте фотографии своих клавиатур!
Желаю вам продуктивного дня.

На фото моя клавиатура, в будущем скорее всего поменяю. Она слишком маленькая🙁
Please open Telegram to view this post
VIEW IN TELEGRAM
😱42
🥲
Please open Telegram to view this post
VIEW IN TELEGRAM
8211
🚀 5 приёмов C# и Unity, которые отличают джуна от мидла

📌 Сохрани — это шаг в сторону масштабируемого и профессионального кода

1️⃣ Action и Func — универсальные делегаты

public Action OnFinished;
public Func<bool> IsConditionMet;


📌 Упрощают объявления и колбэки. Подходят для:
• UI-событий
• игровых триггеров
• асинхронных проверок

Вместо создания собственного делегата — просто:

OnFinished?.Invoke();


2️⃣ LINQ + лямбды — фильтрация без циклов

var enemies = allUnits.Where(u => u.IsEnemy && u.HP > 0).ToList();


📌 Сокращает код и улучшает читаемость.
Идеально для выбора целей, фильтрации объектов и логики на старте.

⚠️ Внутри Update() не злоупотребляй — может создать GC.

3️⃣ Extension Methods — пиши C#, будто это твой движок

public static Vector3 WithY(this Vector3 v, float y) => new(v.x, y, v.z);


📌 transform.position = pos.WithY(0); — читается, как родной синтаксис.
Абстрагируй повторы, работай с Transform, GameObject, string, float и т.д.

4️⃣ ScriptableObject — переменные и сигналы между сценами

[CreateAssetMenu]
public class FloatVariable : ScriptableObject {
public float Value;
}


📌 Используется как:
• runtime переменная (настройки, состояния)
• Event-центр (через UnityEvent или кастомные Raise())
• конфигурация апгрейдов / миссий

Поддерживает инспекторную настройку и разделение логики от данных.

5️⃣ Editor-инструменты — экономь себе часы

[MenuItem("Tools/Clear PlayerPrefs")]
private static void ClearPrefs() => PlayerPrefs.DeleteAll();


📌 Один клик — и готово.
Создавай себе:
• дебаг-кнопки
• редакторы данных
• инструменты генерации

Хочешь больше — используй EditorWindow, PropertyDrawer, AssetPostprocessor.

💬 Хочешь идти в senior — думай об удобстве других, переиспользуемости и времени команды.

🔔 Подписывайся — впереди про архитектуру, DI, UI-системы и async паттерны

👉Akrus Games | Unity
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7322
This media is not supported in your browser
VIEW IN TELEGRAM
Канал по разработке Pixel Top-Down RPG.🎮

В игре уже есть:
Квесты, карта мира(почти готов открытый мир), инвентарь, один моб который может навредить игроку.

В будущем планируется локальный мультиплеер и релиз в Steam, у игры будет громкий релиз готовьтесь😏
https://t.me/PixelAdveture
🔥71
💰 Заработок на мобильных играх: Яндекс Игры, VK Play

Что ждёт разработчика?
Доход сильно зависит от типа игры, монетизации и маркетинга. Цифры очень примерные!

Яндекс Игры (Yandex Games)
• Платформа с огромной аудиторией СНГ.
• Основная монетизация: реклама (встроенная видео-реклама, баннеры).
• Примерный доход: от 300 до 2000 руб с одной игры в месяц.
• Ключевой фактор: количество ежедневных активных игроков (DAU).
• Плюс: встроенные платежи (IAP) для премиум-игр.

VK Play
• Активно развивающаяся платформа от VK.
• Монетизация: реклама и внутриигровые покупки.
• Примерный доход: от 300 до 1000 руб за месяц.
• Перспективно для аркадных и гипер-казуальных проектов.

Что влияет на доход?
- Качество и уникальность игры
- Постоянные обновления и поддержка
- Умение продвигать свой продукт

💡 Вывод: Не стоит рассчитывать на мгновенную прибыль. Начинай с небольших проектов, изучай аналитику и собирай аудиторию. Это марафон, а не спринт.

#Unity #GameDev #ИндиРазработка #Монетизация
🔥63😁11
🙃
Please open Telegram to view this post
VIEW IN TELEGRAM
😁9422
Выбор IDE для Unity: инструменты для кода

Что это?
IDE — это твой главный редактор для написания скриптов. Где код становится игрой.

Топ-3 варианта:

Visual Studio (официальный стандарт)
• Плюсы: идеальная интеграция с Unity, автодополнение кода, отладка прямо в редакторе.
• Минусы: может быть тяжеловата для слабых ПК.

Rider — мощный профи
• Плюсы: умный анализ кода, находит ошибки "на лету", встроенные шаблоны для Unity.
• Минусы: платный (но есть бесплатный пробный период).

VS Code — легкий и быстрый
• Плюсы: быстрая работа, тысячи расширений, бесплатный.
• Минусы: требует ручной настройки для работы с Unity.

Как выбрать?
- Новичок? Бери Visual Studio — уже настроена под Unity.
- Профи-кодер? Попробуй Rider — скорость разработки возрастет.
- Любитель кастомизации? VS Code даст полную свободу.

💡 Важно: в Unity (Edit → Preferences → External Tools) выбери свою IDE как внешний редактор.

Пиши код в удобной среде — это ускорит разработку!
#Unity #IDE #GameDev #CSharp
622
🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5😱211
Новости, (!) по геймдеву

Всем привет! Мы решили создать для вас папку с каналами о программировании и геймдеве. Ссылка на добавление папки снизу⬇️
https://t.me/addlist/o0lxO5aWyHYwZjcy
Please open Telegram to view this post
VIEW IN TELEGRAM
😱1
Паттерн «Состояние» (State): Умное управление поведением

Что это?
Паттерн, который позволяет объекту изменять свое поведение в зависимости от внутреннего состояния. Как режимы работы устройства.

Зачем?
• Избегать гигантских конструкций switch или if-else
• Четко разделять логику разных состояний
• Упрощать добавление новых состояний

Как работает?
1. Создаешь интерфейс состояния (IState) с методами Enter(), Update(), Exit()
2. Реализуешь конкретные состояния (например, IdleState, MoveState, AttackState)
3. Создаешь класс StateMachine, который управляет текущим состоянием

Пример: Простая машина состояний врага
// 1. Интерфейс состояния
public interface IEnemyState
{
void Enter();
void Update();
void Exit();
}

// 2. Конкретное состояние - Преследование
public class ChaseState : IEnemyState
{
public void Enter() { Debug.Log("Начинаю преследование!"); }
public void Update() { /* Логика движения к игроку */ }
public void Exit() { Debug.Log("Прекращаю преследование."); }
}

// 3. Машина состояний
public class EnemyAI : MonoBehaviour
{
IEnemyState currentState;

public void ChangeState(IEnemyState newState)
{
currentState?.Exit();
currentState = newState;
currentState?.Enter();
}

void Update()
{
currentState?.Update();
}
}

// Использование:
EnemyAI ai = GetComponent<EnemyAI>();
ai.ChangeState(new ChaseState());


Важно!
• Каждое состояние отвечает только за свою логику
• Переход между состояниями происходит в одном месте (StateMachine)
• Отлично сочетается с другими паттернами (например, Command)

💡 Применяй для: ИИ врагов, анимаций, управления игроком (бег, прыжок, атака).

#Unity #CSharp #Patterns #StateMachine #GameDev
🎄432
😒
Please open Telegram to view this post
VIEW IN TELEGRAM
11😁42
Media is too big
VIEW IN TELEGRAM
Pulse Of Fear 👍

Ссылка на игру 🔗

Над игрой ребята работали 2-3 месяца. Более 150 коммитов на гите. Смогли выйти на гугл плей.

Игра началась с концепта таких популярных игр как : Eyes, Granny и др.

Разработчики прислушиваются к советам, так что пишите им, в случае нахождения багов или советов.

Хоррор-игра о выживании в страшных и заброшенных местах!

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

Решайте головоломки, придумывайте пути обхода монстров
😎

Губби тоже тут
😎


Над игрой работали эти ребята:
MorPo
NOBICE
Dispelin

Так же пишите отзывы (рофельные или же по делу) , они попадут в нарезку в канале MorPo
Please open Telegram to view this post
VIEW IN TELEGRAM
533
Чистый код в Unity: правила для читаемости и поддержки

Что это?
Правила написания кода, которые делают его понятным для тебя и других разработчиков.

Зачем?
• Легче находить и исправлять ошибки
• Упрощается командная работа
• Ускоряется добавление нового функционала

Основные правила:

1️⃣ Именуй методы как действия
Название должно сразу объяснять суть.
// Хорошо:
void MovePlayer() {}
void CalculateDamage() {}

// Плохо:
void DoSomething() {}
void Process() {}


2️⃣ Заменяй "магические числа" на константы
Числа в коде без пояснений запутывают.
// Вместо:
if (health < 30) {}

// Используй:
private const int LOW_HEALTH_THRESHOLD = 30;
if (health < LOW_HEALTH_THRESHOLD) {}


3️⃣ Разделяй ответственность по классам
Один класс — одна задача.
• PlayerMovement.cs — за перемещение
• PlayerHealth.cs — за здоровье
• PlayerInventory.cs — за инвентарь

4️⃣ Убирай дублирование кода
Повторяющуюся логику выноси в отдельные методы.
// Вынеси в метод:
private void PlaySound(AudioClip clip)
{
audioSource.PlayOneShot(clip);
}


5️⃣ Пиши осмысленные комментарии
Объясняй "почему", а не "что".
// Плохо: 
x += 10; // Добавляем 10 к x

// Хорошо:
x += bonusScore; // Начисляем бонус за сложное достижение


💡 Помни: код читают чаще, чем пишут. Делай его понятным!
#Unity #CSharp #GameDev #ЧистыйКод
🔥74311
А казалось, все так просто🥲
Please open Telegram to view this post
VIEW IN TELEGRAM
😁54🎄31
Адаптивный UI в Unity: как избежать поломок

Что это?
Правильная настройка UI, который корректно отображается на любых разрешениях экрана.

Как сделать?
1. Canvas Scaler:
- Режим: Scale With Screen Size
- Референсное разрешение: 1920x1080
- Screen Match Mode: Match Width Or Height

2. Anchors и Pivot:
- Фиксируй элементы через anchorMin/anchorMax
- Пример: кнопка в углу всегда останется на месте

3. Safe Area для мобилок:

   RectTransform rect = GetComponent<RectTransform>();
rect.anchorMin = Screen.safeArea.position;
rect.anchorMax = Screen.safeArea.size;


4. Layout Group:
- Используй Vertical/Horizontal Layout Group
- Избегай фиксированных размеров
- Для сложных списков контролируй размеры через LayoutElement

5. Единый UIManager:
- Централизованное управление окнами
- Отслеживание текущего экрана
- Блокировка ввода при переходах

Важно!
• Тестируй на разных разрешениях (от телефона до планшета)
• Для Scroll View оптимизируй через Object Pooling
• Используй события вместо прямых ссылок между панелями

💡 Применяй для: мобильных игр, кроссплатформенных проектов, сложных интерфейсов.
Стабильный UI = профессиональное впечатление от игры!

#Unity #UI #GameDev #AdaptiveUI
53
Please open Telegram to view this post
VIEW IN TELEGRAM
7442111
Изменяемое окно игры в Unity

Как настроить?
В сборках под ПК (Windows/Mac/Linux) это делается в настройках плеера.

Пошагово:
1. Открой File → Build Settings
2. Выбери платформу (PC)
3. Нажми Player Settings
4. В разделе Resolution and Presentation:
- Default Is Full Screen — сними галочку
- Fullscreen Mode — выбери "Windowed"
- Resizable Window — отметь галочку (доступно для Windows/Mac)

Важные нюансы:
• Размер окна при старте задаётся в полях Default Screen Width/Height
• Игрок может менять размер перетаскиванием краёв окна
• В коде можно отслеживать изменение размера:

void Update()
{
if (Screen.width != lastWidth || Screen.height != lastHeight)
{
// Пересчитать интерфейс или камеру
UpdateLayout();
lastWidth = Screen.width;
lastHeight = Screen.height;
}
}


Что проверить:
- Интерфейс (UI) должен адаптироваться под разные разрешения
- Камера может требовать перенастройки при изменении пропорций
- Для Windows убедись, что в Target Platform выбрана версия с DX11/OpenGL

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

Советую прочитать предыдущий пост про настройку Canvas

#Unity #GameDev #Сборка #Unity2D #Unity3D
4331
Шумы в Unity: генерация миров и не только

Что это?
Математические алгоритмы для создания псевдослучайных узоров. Не просто хаос, а структурированная случайность!

Зачем?
• Генерация процедурных ландшафтов (террейн)
• Создание текстур (облака, огонь, дым)
• Анимация значений (мерцание, дрожание)
• Размещение объектов на локации

Основные типы:
Perlin Noise - классика для плавных высот:
float height = Mathf.PerlinNoise(x * scale, y * scale);


Simplex Noise - оптимизированная версия Perlin
Value Noise - более блочный и резкий результат
Cellular Noise - для ячеистых структур (пчелиные соты, трещины)

Пример использования для террейна:
for (int x = 0; x < width; x++) {
for (int z = 0; z < depth; z++) {
// Получаем высоту через шум
float y = Mathf.PerlinNoise(x * 0.1f, z * 0.1f) * 20f;
Instantiate(groundTile, new Vector3(x, y, z), Quaternion.identity);
}
}


Важно!
• Используй разные масштабы (scale) для детализации
• Комбинируй несколько слоёв шума для сложных форм
• В Unity есть встроенный Mathf.PerlinNoise
• Для продвинутых вариантов используй сторонние библиотеки (FastNoise)

💡 Применяй для: процедурной генерации, VFX, случайных событий с естественным видом.
Преврати хаос в контролируемый инструмент!

#Unity #GameDev #ProceduralGeneration #Noise #Gamedevelopment
🔥6531