Сохрани, если хочешь выжать максимум производительности из Unity! ECS — это подход, где данные и логика разделены. Идеально для тысяч объектов на сцене.
1️⃣ Из чего состоит ECS?
• Entity — просто ID, контейнер для данных. Не GameObject!
• Component — структура с данными (позиция, здоровье). Не MonoBehaviour!
• System — класс с логикой, которая работает над подходящими компонентами.
2️⃣ Как это работает вместе?
Система
MovementSystem автоматически находит все Entity, у которых есть компоненты Position и Velocity, и обновляет их.3️⃣ Пример кода:
// Компонент - ТОЛЬКО данные
public struct Position : IComponentData
{
public float3 Value;
}
public struct Velocity : IComponentData
{
public float3 Value;
}
// Система - ТОЛЬКО логика
public partial class MovementSystem : SystemBase
{
protected override void OnUpdate()
{
float deltaTime = Time.DeltaTime;
Entities
.ForEach((ref Position pos, in Velocity vel) =>
{
pos.Value += vel.Value * deltaTime;
}).ScheduleParallel();
}
}
💥 Главный плюс: Невероятная производительность за счет кеш-дружественности и многопоточности.
🚀 С чего начать?
Установи пакеты
Entities, Hybrid Renderer через Package Manager. Используй ConvertToEntity на GameObject для постепенного перехода.✅ ECS + Jobs System = Мощь для массовки, пуль и сложных симуляций.
💬 Планируешь использовать ECS в своем проекте?
🔔 Подпишись — впереди разбор DOTS, Jobs System и Burst Compiler!
👉Akrus Games | Unity