TGViewer
Akrus Games | Unity Akrus Games | Unity @akrusunity · 2.67K subscribers
Post #728 499
🚀 Unity ECS: Part 2 — Пишем первую систему

Сохраняй и пробуй! Сегодня разберем как создать работающую ECS-систему с нуля. Без воды — только код и практика.

1️⃣ Создаём компоненты данных

// Компонент для хранения здоровья
public struct Health : IComponentData
{
public float Current;
public float Max;
}

// Компонент для урона
public struct Damage : IComponentData
{
public float Value;
}


2️⃣ Пишем систему обработки урона

public partial class DamageSystem : SystemBase
{
protected override void OnUpdate()
{
float deltaTime = Time.DeltaTime;

Entities
.ForEach((ref Health health, in Damage damage) =>
{
// Уменьшаем здоровье с учётом времени
health.Current -= damage.Value * deltaTime;

// Не даём упасть ниже нуля
if (health.Current < 0)
health.Current = 0;

}).ScheduleParallel();
}
}


3️⃣ Система удаления мёртвых объектов

public partial class DeathSystem : SystemBase
{
private EndSimulationEntityCommandBufferSystem _ecbSystem;

protected override void OnCreate()
{
_ecbSystem = World.GetExistingSystem<EndSimulationEntityCommandBufferSystem>();
}

protected override void OnUpdate()
{
var ecb = _ecbSystem.CreateCommandBuffer();

Entities
.WithNone<DestroyTag>()
.ForEach((Entity entity, in Health health) =>
{
if (health.Current <= 0)
{
ecb.AddComponent<DestroyTag>(entity);
}
}).Run();
}
}

public struct DestroyTag : IComponentData {}


⚡️ Что важно понять:
• Системы работают автоматически каждый кадр
• ScheduleParallel() — запускает в несколько потоков
• EntityCommandBuffer — для безопасного изменения Entities

🎯 Практический совет:
Начни с малого — создай систему вращения кубов. Потом добавь движение. Постепенно освоишь все концепции!

💬 Получилось запустить первую систему?
🔔 В следующем посте разберем JobSystem и Burst Compiler для максимальной производительности!

👉Akrus Games | Unity
  • 🔥 10
  • ❤ 4
  • 🎄 1
More from @akrusunity
  1. Sep 29, 2026Чей синьор?
  2. Sep 22, 2026Я добавил релиз(я в начале не догадался, что через консоль можно прикреплять файлы любого…
  3. Sep 21, 2026https://github.com/Akrus001/YoutubeDownloader Я выложил на гитхаб переделанную версию Yout…
  4. Sep 16, 2026Я хотел запустить Youtube Downloader, но... Нейронка это уже исправила и сейчас пытается с…
  5. Sep 13, 2026Сегодня 2**8 день года и это значит что... Сегодня день программиста!!!😎⌨️🧑‍💻 (вайбкоде…
  6. Sep 8, 2026Post #1035
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →