CodeBlanks Logo Icon CodeBlanks

Summary - Unity DOTS/ECS

Reinforce DOTS/ECS usage with a summary task.

DOTS and ECS Overview

Unity DOTS combines data-oriented technologies for high-performance game development. In ECS architecture, an Entity represents an object, IComponentData defines data components, and SystemBase processes that data. Burst Compiler contributes to performance by optimizing supported computation code.

Entity
  Position : IComponentData
  Health : IComponentData

SystemBase
  OnUpdate()

[BurstCompile]

When used together, these elements help manage large numbers of game objects efficiently.

Practice Create a DOTS/ECS Component and System

Create a struct named Energy that implements IComponentData and add a float field named Value. Then define a SystemBase class named EnergySystem. Inside OnUpdate, use Entities.ForEach to increase the Energy component value by 2 and schedule the operation with Schedule. Also print the energy result to the console.

Starter code

Player.cs
using Unity.Entities;
using UnityEngine;

// Energy bileşenini oluştur

// EnergySystem sınıfını oluştur
{
    // OnUpdate metodunu tanımla
    {
        // Energy bileşenini işle
        // Value değerini 2 artır
        // İşlemi zamanla
    }
}

public class EnergyTest : MonoBehaviour
{
    void Start()
    {
        // Enerji sonucunu yazdır
    }
}

Sample solution

Player.cs
using Unity.Entities;
using UnityEngine;

public struct Energy : IComponentData
{
    public float Value;
}

public partial class EnergySystem : SystemBase
{
    protected override void OnUpdate()
    {
        Entities.ForEach((ref Energy energy) =>
        {
            energy.Value += 2f;
        }).Schedule();
    }
}

public class EnergyTest : MonoBehaviour
{
    void Start()
    {
        float energy = 2f;
        Debug.Log("Energy: " + energy);
    }
}

Expected output

Energy: 2

Questions and answers

Review the lesson questions together with their answers. To test yourself, solve the lesson interactively.

1 Which pairing is correct for storing Position data and processing that data in an ECS system?

  • Position data is stored in IComponentData, and operations are handled in SystemBase Correct answer
  • Position data is stored in Burst, and operations are handled in Package Manager
  • Position data is stored in Archetype, and operations are handled in MonoBehaviour
  • Position data is stored in SystemBase, and operations are stored in Entity

Explanation: IComponentData defines data components such as Position. SystemBase contains the system logic that processes these components.

2 Complete the DOTS System Foundation

Question
public partial class PositionSystem : ____
Answer
public partial class PositionSystem : SystemBase

Explanation: PositionSystem inherits from SystemBase to use ECS system logic.

3 DOTS and ECS Integration

Term Meaning
Entity Represents a game object
IComponentData Defines data components
SystemBase Is the system that processes components
Burst Compiler Optimizes computation code

All lessons in Expert