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

Сотрудничество/реклама/помощь @Akrus001
Download Telegram
⚡️ Unity для инди: ПК, Мобилки или Веб?

Однозначного ответа нет — но есть чёткие плюсы и минусы для каждого.

📱 Мобилки (Android/iOS)
Плюсы:
• Огромная аудитория — проще набрать первые установки
• Hyper-casual и mid-core — инди-хиты рождаются здесь
• Быстрая публикация в сторах

Минусы:
• Жёсткая конкуренция за видимость
• Сложная монетизация ( кроме рекламы )
• Вечная борьба с оптимизацией

💻 ПК (Steam, Itch.io)
Плюсы:
• Лояльная аудитория — ценят уникальные инди-игры
• Выше цена продажи ( $5-20 против бесплатных мобилок )
• Полная творческая свобода — любые механики и стили

Минусы:
• Нужен маркетинг — просто выложить на Steam мало
• Выше ожидания от качества геймплея и графики

🌐 Веб (WebGL, Itch.io)
Плюсы:
• Идеально для демо, джемов, прототипов
• Игроки запускают в один клик — максимум вовлечённости
• Быстрая обратная связь от комьюнити

Минусы:
• Практически нет монетизации
• Жёсткие ограничения по размеру билда и производительности

💡 Инди-вердикт:
• Хочешь быстрый старт и тестирование идеи → Веб
• Делаешь уникальный геймдизайн под ценителей → ПК
• Целишь в массовый гипер-кэжуал → Мобилки

📌 Главное — выбирай платформу под тип игры, а не под моду.

💬 А ты под какую платформу сейчас разрабатываешь?
🔔 Подпишись — скоро расскажу как правильно тестировать инди-идеи с минимальным бюджетом

👉Akrus Games | Unity
10
Всем привет! Разрабатываю в соло, рпг игру с открытым миром) За основу взята Китайская мифология про Культиваторов. Вот что хочу реализовать: систему прокачки на основе медитации и пилюль, полёт, открытый бесшовный мир, алхимия, создание артефактов, глубокий сюжет с разными концовками, красивые динамичные бои и многое другое) Для ускорения разработки использую разные инструменты.
Обо всем рассказываю в своем тг канале)
https://t.me/World_of_Immortals_Game
5
⚡️ Почему казуальные игры — хит? Просто о главном

Казуалки захватили мобилки и стим не просто так. Вот 2 ключевые причины, которые бьют точно в цель:

🎯 1. Ноль барьеров для входа
• Правила понятны за 10 секунд.
• Не нужны гайды или обучение.
• Игрок чувствует себя уверенно сразу.

📱 2. Идеально подстроены под ритм жизни
• Играется урывками: в метро, в очереди, на перерыве.
• Можно отложить в любой момент без потери прогресса.
• Не требует 100% погружения — идеально для расслабления.

💡 Вывод: они решают главную задачу — дают мгновенное удовольствие без усилий. Мозг получает дофамин за первые 30 секунд геймплея — и это привыкание.

🚀 Хочешь сделать свою?
• Фокус на одном простом механике
• Ясные цели с быстрым вознаграждением
• Минимум элементов управления

💬 А ты чаще в казуалки или хардкорные проекты играешь? Пиши в комментах!

🔔 Подпишись — скоро разберем как собрать прототип казуалки за 1 день
👉Akrus Games | Unity
8
⚡️ Unity: шпаргалка по Тайлмапу

Сохрани, чтобы не путаться в настройках Tilemap — всё самое важное в одном месте.

1️⃣ Базовые компоненты

• Grid — разбивает сцену на клетки.
•Tilemap — рисует сетку тайлов на основе Grid.
•Tile Palette (Окно → 2D → Tile Palette) — палитра для рисования тайлов прямо в сцене.

2️⃣ Создание тайлов

📌 Обычный тайл (Sprite):
•Перетащи спрайт в палитру → создаётся Tile Asset.
•Можно настраивать Collider Type (None, Sprite, Grid).

📌 Анимированный тайл (Animation):
•Создай несколько спрайтов → в палитре выбери "Animated Tile".
•Укажи FPS и Min/Max количество кадров.

📌 Тайл по правилам (Rule Tile):
•Установи пакет "2D Tilemap Extras" через Package Manager.
•Rule Tile автоматически меняет вид исходя из соседей.

3️⃣ Слои Tilemap

• Создавай несколько Tilemap под разные слои (земля, декор, здания).
•Используй Sorting Order для управления отрисовкой.
•Для изометрии: в Grid выбери Isometric режим.

4️⃣ Colliders на тайлах

• Добавь компонент Tilemap Collider 2D.
•Для оптимизации объедини коллайдеры: Composite Collider 2D + Tilemap Collider 2D → выстави Used By Composite.

5️⃣ Частые проблемы

• Тайлы не рисуются? Проверь, выбран ли слой Tilemap в палитре.
•Коллайдеры не работают? Убедись, что у тайлов в импорте Collider Type ≠ "None".
•Артефакты между тайлами? В импорте спрайтов включи Pixel Perfect и выстави Pixels Per Unit одинаковым.

💡 Pro-совет: используй Rule Tile с разными правилами для автоматизации сложных участков (углы, склоны, переходы).

Теперь твой уровень будет выглядеть аккуратно и собираться в разы быстрее.

💬 Какие фишки по тайлмапу знаешь ты?
🔔Подпишись — впереди шпаргалки по Scriptable Objects и оптимизации!

👉Akrus Games | Unity
8🔥3🎄22
Unity Animator: Any State — гибкие переходы

Что это?
Состояние, из которого можно перейти в другое состояние *в любой момент*, независимо от текущей анимации.

Зачем?
• Реагировать на критические события мгновенно (смерть, получение урона)
• Прерывать любую анимацию (например, атаку — если игрока отбросило)
• Упрощать логику переходов между несвязанными состояниями

Как настроить?
1. В окне Animator Controller правой кнопкой → Create StateAny State
2. Создай переход из Any State в целевое состояние (например, "Death")
3. Добавь условие перехода (Bool, Trigger и т.д.)
4. В коде активируй параметр при событии:
animator.SetTrigger("Die"); // Прервёт ЛЮБУЮ анимацию

Важные нюансы:
⚠️ Приоритет: Если к Any State привязано несколько переходов, выполнится первый *валидный*.
Order Matters: Измени порядок переходов в списке (верхний = выше приоритет).
Exit Time не работает: Переход мгновенный, тайминг игнорируется.

Пример:
// При получении смертельного урона:
public void TakeDamage(int damage) {
health -= damage;
if (health <= 0) {
animator.SetTrigger("Die"); // Сработает из ЛЮБОГО состояния
}
}

💡 Где использовать:
• Смерть/возрождение
• Стан/оглушение
• Резкая смена действия (телепорт, трансформация)

Используй Any State для критических событий — сделай игру отзывчивой!
#Unity #gamedev #Animator #Unity3D
🔥52😱1
🚀 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
5🔥432
🥲
Please open Telegram to view this post
VIEW IN TELEGRAM
9😱3211
RigidBody в Unity: основа физики

Что это?
Компонент, который делает объект подчинённым физике Unity: гравитация, столкновения, сила.

Зачем?
• Реалистичное движение предметов
• Реакция на удары и падения
• Управление через силы и импульсы
• Настройка массы, трения, упругости

Как использовать?
1. Добавь компонент Rigidbody (или Rigidbody2D для 2D)
2. Включи/отключи Use Gravity при необходимости
3. Управляй движением через код

Пример:

Rigidbody rb;

void Start()
{
rb = GetComponent<Rigidbody>();
rb.AddForce(Vector3.forward * 10f, ForceMode.Impulse);
}


Важно!
• ForceMode.Force — плавное ускорение
• ForceMode.Impulse — резкий толчок
• Масса влияет на физику
• Для статичных объектов Rigidbody не нужен

💡 Используй Rigidbody, если хочешь, чтобы объект вёл себя как в реальном мире.

Классный плейлист по физике https://youtube.com/playlist?list=PL8C4SmiVZY0wUFQrUXKQCS3BhRk2MIs8v&si=rkiHtIe4BN_GY0gX

#Unity #Physics #Rigidbody
7🔥411
⚡️ Blender 5.0 ВЫШЕЛ

— Киношные цвета: новый HDR-пайплайн, ACES 1.3/2.0, широкие гаммы.
— Небо как в кино: суперреалистичный Sky Texture — один слайдер, и у тебя рассвет, закат или шторма как в «Валли».
— Новый рендер Cycles: чище, реалистичнее, без артефактов и радужка на металлах.
— Видео-монтаж переродился: обновлённый Sequencer, модификаторы, композинг прямо внутри.
— Geometry Nodes на стероидах: новый Array, Scatter, Repeat Zones — делай окружения как в больших студиях.
— Grease Pencil с motion blur: 2D-анимация теперь кинематографичная.


👉 Творим — здесь.
6🤯1😱1
⚡️ Unity: шпаргалка по стилю игры

Сохраняй, чтобы игра не превратилась в визуальную кашу. Чёткие правила = сильный стиль.

🎨 ЦВЕТ
•Ограничь палитру 3-4 основными цветами.
•Используй акцентный цвет для важных объектов (персонаж, интерактивы).
•Сайты для палитр: Lospec, Coolors, Adobe Color.

💡 СВЕТ
•Настрой Ambient Color под настроение (тёплый/холодный).
•Используй Directional Light как основной источник.
•Добавляй Point/Spot Lights для акцентов и атмосферы.

🔄 ЧАСТОТА КАДРОВ (FPS)
•60 FPS — стандарт для экшенов.
•30 FPS — для стилизованных или казуальных проектов.
•Фиксированный Timestep для физики (0.02 для 50 FPS).

🎵 ЗВУК
•Громкость фоновой музыки — 50-70% от звуков эффектов.
•Используй низкочастотные звуки (Low-Pass Filter) для эффекта "из другого помещения".
•Один источник музыки на сцену.

📐 МАСШТАБ И ПРОПОРЦИИ
•Придерживайся единого масштаба для всех объектов в сцене.
•Персонаж — 2 юнита в высоту, дверь — 3 юнита.
•Используй стандартные размеры для UI (шрифт 24-32 px, отступы 10-20 px).

🌀 ДВИЖЕНИЕ И АНИМАЦИЯ
•Все движения через Mathf.Lerp/SmoothDamp для плавности.
•Анимации UI через DOTween/LeanTween.
•Длительность анимации: 0.1-0.3 сек.

📌 ПРАВИЛО 3x
•3 основных цвета
•3 типа звуков (музыка, эффекты, окружение)
•3 уровня детализации (ближний, средний, дальний план)

💾 Сохрани шпаргалку — пересматривай перед началом нового проекта!

💬 А какие правила стиля используешь ты?
🔔Подпишись — будет ещё про композицию, шейдеры и работу с ассетами.

👉Akrus Games | Unity
6🔥631
⚡️ Топ-5 жанров для инди-игр в Unity

Выбираешь, в каком жанре делать свою следующую игру? Держи актуальную подборку — эти направления стабильно находят свою аудиторию.

1️⃣ Roguelike / Roguelite

🎯 Почему популярно: Высокая реиграбельность, процедурная генерация.
💡 Ключевые механики: Случайные предметы, перманентная смерть, прогресс между забегами.
📌 Примеры: Hades, The Binding of Isaac, Soul knight

2️⃣ Казуальные головоломки (Puzzle/Casual)

🎯 Почему популярно: Низкий порог входа, широкая аудитория.
💡 Ключевые механики: Простое управление, постепенное усложнение, система уровней.
📌 Примеры: Merge games, match-3, физические пазлы.

3️⃣ Хоррор от первого лица

🎯 Почему популярно: Сильное погружение, возможность создать атмосферу даже с простой графикой.
💡 Ключевые механики: Исследование, скрытые угрозы, ограниченные ресурсы.
📌 Примеры: Phasmophobia, Pulse of fear.

4️⃣ Симуляторы и менеджеры

🎯 Почему популярно: Глубокие системы, нишевая но преданная аудитория.
💡 Ключевые механики: Прокачка, экономика, стратегическое планирование.
📌 Примеры: Stardew Valley (ферма + RPG), Two Point Hospital.

5️⃣ Платформеры 2D/2.5D

🎯 Почему популярно: Классика жанра, отлично подходит для нарратива.
💡 Ключевые механики: Точный контроль, уникальные способности, исследование мира.
📌 Примеры: Hollow Knight, Celeste, Ori and the Blind Forest.

💡 Совет: Самый стабильный путь — взять проверенный жанр и добавить свою уникальную механику или стиль.

💬 А над каким жанром работаешь ты? Делись в комментах!
🔔 Подпишись — скоро разберем, как протестировать идею игры до начала разработки.

👉Akrus Games | Unity
4🔥2🎄1
⚡️ Unity: Интерфейсы в C# — сила контрактов

Интерфейс — это контракт, который гарантирует, что класс умеет делать определённые действия. Неважно, кто его подписал — игрок, враг или бочка. Главное — они все могут выполнить условия контракта.
В интерфейсах в c# не принято делать реализацию функций, свойств, только объявление.

🔥 Зачем это в играх?

Допустим, у тебя есть меч, который может бить врагов и ломать бочки. Без интерфейсов — это ад из if (collider.GetComponent<Enemy>() != null)... С интерфейсами — чисто и гибко.

Можно наследовать от любого количества интерфейсов, в отличии от наследования от классов.

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

🎯 Реальный пример: взаимодействие с объектами

public class Bullet : MonoBehaviour
{
private const int _damage = 10;

private void CheckHit()
{
//проверка столкновений с IHealth
hitObj.TakeDamage(_damage);
}
}

public class Player : MonoBehaviour, IHealth
{
// Реализация свойства
public int Health { get; private set; }
// Прочие поля
// Прочии свойства
// Прочии функции

// Реализация функции
public void TakeDamage(int damage) =>
Health -= damage;
}

public interface IHealth
{
// Обьявление свойства Health
int Health { get; }
// Обьявление функции TakeDamage
void TakeDamage(int damage);
}


💡 Два главных плюса:

🔸 Гибкость — добавляй новые разрушаемые объекты без изменения кода меча
🔸 Чистота — избавляешься от гигантских цепочек проверок через GetComponent

🚀 Где ещё использовать?

IInteractable для взаимодействия с NPC, дверями, предметами
ICollectable для сбора монет, аптечек, боеприпасов
ISaveable для системы сохранений

💬 Используешь интерфейсы в своих проектах? Делися в комментах!

🔔 Подпишись — ещё больше C# фишек для геймдева

Пост помог написать @Nokskiy
👉Akrus Games | Unity
🔥82🎄111
Как вам идея поиграть в hollow knight по мультиплееру?
Anonymous Poll
44%
Да, давай
31%
не хочу
26%
Что это?
5🔥3😁11
⚡️ Unity: Инкапсуляция — твой код под контролем

Инкапсуляция — это не скучная теория, а твой главный инструмент для чистого и защищённого кода. Суть: прячем данные, открываем только нужные методы.

🎯 Зачем в играх?
• Предотвращаем случайные баги (другой скрипт не сломает твои переменные)
• Делаем код понятнее — чёткие границы ответственности
• Упрощаем изменения — меняем внутреннюю логику без поломки других систем

🛡 Практика в Unity:


1️⃣ private + [SerializeField]
private int _health = 100;

Доступ только внутри этого класса. Для настройки в инспекторе используем:
[SerializeField] private int _health = 100;


2️⃣ public свойства с контролем
public int Health { get; private set; }

Читать можно откуда угодно, менять — только внутри класса.

3️⃣ protected — для семейного доступа

protected int _mana;

Доступ в этом классе И во всех наследниках. Идеально для базовых классов!

💥 Живой пример с protected:
public class Character : MonoBehaviour
{
[SerializeField] protected int maxHealth = 100;
public int Health { get; protected set; }

protected virtual void Start() => Health = maxHealth;

public virtual void TakeDamage(int damage)
{
Health = Mathf.Max(0, Health - damage);
}
}

public class Player : Character
{
protected override void Start()
{
base.Start();
// Можем использовать Health и maxHealth - они protected
Health += 50; // Бонус здоровья для игрока
}
}


Вывод:
• private — только для своего класса
• protected — для семьи (родитель + наследники)
• public — для всех

💬 Как ты организуешь доступ к данным в своих скриптах?
🔔 Подпишись — впереди ещё больше про архитектуру игр без факапов

👉Akrus Games | Unity
5🔥2😱11
По итогам голосования поиграем с вами в пвп в следующие выходные.
Чтобы не засорять канал, вся инфа будет здесь https://t.me/AkrusDnevnik
2🔥2😁1
⚡️ Unity: шпаргалка по C# LINQ

Сохраняй — эти методы ускорят твой код в разы. LINQ — это мощь для фильтрации, сортировки и выборки данных.

🔸 Основные методы:

Where — фильтрация.

var enemies = allUnits.Where(unit => unit.IsEnemy);

Select — преобразование.

var names = players.Select(player => player.Name);

First / FirstOrDefault — первый элемент.

var target = enemies.First(e => e.Health < 10); // FirstOrDefault вернёт null, если ничего не найдено.

OrderBy / OrderByDescending — сортировка.

var sortedByScore = players.OrderByDescending(p => p.Score);

Any / All — проверка условий.

bool isAnyAlive = enemies.Any(e => e.IsAlive);
bool allReady = players.All(p => p.IsReady);

Count — количество.

int aliveCount = enemies.Count(e => e.IsAlive);

💥 Важно в Unity:

• ToArray() / ToList() — если результат нужен многократно, материализуй запрос. Иначе он будет вычисляться заново.

var list = enemies.Where(e => e.IsVisible).ToList();

• Избегай в Update — LINQ создает аллокации. В циклах это приводит к сборкам мусора (GC).

• Single() / SingleOrDefault() — строгий поиск одного элемента. Выбросит исключение, если элементов нет или их несколько.

🚀 Пример в деле:

// Найти ближайшего живого врага
var nearestEnemy = enemies
.Where(e => e.IsAlive)
.OrderBy(e => Vector3.Distance(transform.position, e.Position))
.FirstOrDefault();

📌 Сохрани шпаргалку — LINQ сэкономит часы рутины.

💬 Как часто используешь LINQ в проектах?
🔔Подпишись — еще больше шпаргалок и фишек по C# и Unity уже готовы!

👉Akrus Games | Unity
🔥86🎄11
⚡️ Pattern Matching в C# — твой чит-код для чистого кода

Устал от горы if-else и switch? Pattern Matching — это как «умный» switch на стероидах. Проверяй тип, структуру и значения в одной строке.

🎯 2 способа использовать Pattern Matching уже сегодня:

1️⃣ Type Patterns — замена громоздким проверкам типа

// Было:
if (enemy is Boss)
{
((Boss)enemy).SpecialAttack();
}

// Стало:
if (enemy is Boss boss)
{
boss.SpecialAttack(); // Без кастов!
}

// Идеально для обработки разных типов врагов:
void ProcessEnemy(Enemy enemy)
{
switch (enemy)
{
case Boss b:
b.StartBossFight();
break;
case FlyingEnemy f when f.IsFlying:
f.DiveAttack();
break;
default:
enemy.Patrol();
break;
}
}


2️⃣ Property Patterns — проверяй свойства объектов

// Мощная фильтрация прямо в switch:
string GetAttackType(Weapon weapon) => weapon switch
{
{ Damage: > 100, Type: "Fire" } => "Критическая огненная атака!",
{ Ammo: 0 } => "Оружие пусто!",
_ => "Обычный удар"
};

// Отлично для системы диалогов:
var reaction = npc switch
{
{ Mood: "Angry", Level: > 5 } => "Гневная реплика",
{ QuestCompleted: true } => "Благодарность",
_ => "Стандартный диалог"
};


💡 Запомни:
- is с деконструкцией — убирает касты
- switch с паттернами — заменяет гигантские if-else
- when добавляет условия

🚀 Результат: Меньше кода, меньше ошибок, лучше читаемость. Особенно в игровой логике!

#️⃣ P.S. Используешь уже? Делись кейсами в комментах!

🔔 Подпишись — каждый день полезные фишки по Unity и C#
🔥74🎄11
⌨️
Please open Telegram to view this post
VIEW IN TELEGRAM
8😁311
⚡️ C# Records в Unity: данные без головной боли

Records — это иммутабельные данные «в одну строчку». Идеально для конфигов, событий, DTO.

Базовый пример:
public record WeaponData(int Damage, float FireRate, string Name);

Сам генерирует конструктор, свойства, Equals, GetHashCode, ToString()
Неизменяемый — защита от случайных багов

Records с методами:
public record EnemyData(int Health, int Speed)
{
public bool IsAlive => Health > 0;
public EnemyData WithDoubleSpeed() => this with { Speed = Speed * 2 };
}

💡 Ключевое слово with создает копию с изменениями — супер для модификаций!

Где использовать в Unity:
• Настройки оружия, персонажей, предметов
• События (например, record DamageEvent(int Amount, GameObject Target))
• Данные для сохранений

⚠️ Важно: Records — ссылочные типы, но с value-семантикой. Отлично работают в Unity 2020.3+

Плюсы:
• Меньше кода
• Безопасность данных
• Читаемость

Используешь Records? Пиши в комментах! 🔥

👉Akrus Games | Unity
🎄432
⚡️ Unity: C# Data-Oriented Design для максимальной производительности

Устал от медленного foreach по тысячам объектов? Struct of Arrays — это подход, который ускоряет обработку данных, как в настоящем ECS.

Проблема стандартного подхода:
foreach (var enemy in enemies) {
enemy.Update(); // Кэш-промахи, разбросанные объекты в памяти
}

• Кэш-промахи процессора
• Разбросанные в памяти объекты
• Виртуальные вызовы

Решение: Struct of Arrays (основа ECS)

1️⃣ Правильная структура данных:
public struct EnemyChunk {
public Vector3[] positions;
public float[] healths;
public int count;
}

Данные хранятся в плотных массивах — процессор обрабатывает их последовательно, без промахов кэша.

2️⃣ Оптимизированная итерация:
for (int i = 0; i < chunk.count; i++) {
chunk.positions[i] += Vector3.forward * speed;
chunk.healths[i] -= Time.deltaTime;
}

• Нет виртуальных вызовов
• Данные последовательны в кэше
• Автоматическая векторизация
• Параллелизация

💡 Реальный результат:
Обработка 10 000 юнитов ускоряется в 2-5 раз по сравнению с GameObject/GetComponent в цикле. Даже против готового списка MonoBehaviour выигрыш за счет кэш-дружественности.

🚀 Следующий уровень:
Unity.Entities (DOTS) — автоматическое управление чанками, параллельная обработка и Burst компиляция.

💬 Используешь плотные массивы для данных? Делитесь опытом в комментариях!
🔔 Подпишись — больше фишек для инди-оптимизации впереди.

👉Akrus Games | Unity

#Unity3D #UnityOptimization #ECS #DOTS #CSharp
71