unity-ecs | Skill Performance & Reviews | TopRankSkills

TopRank Skills

Home / Skills / development / unity-ecs

unity-ecs

maintained by a5c-ai

star 417 account_tree 21 verified_user MIT License
bolt View GitHub

name: unity-ecs description: Unity DOTS/ECS skill for data-oriented design, jobs system, burst compiler optimization, and high-performance gameplay systems. allowed-tools: Read, Grep, Write, Bash, Edit, Glob, WebFetch

Unity ECS Skill

Data-Oriented Technology Stack (DOTS) and Entity Component System development for Unity.

Overview

This skill provides capabilities for implementing high-performance gameplay systems using Unity's Entity Component System, Jobs System, and Burst compiler.

Capabilities

Entity Component System

  • Create IComponentData structs
  • Implement ISystem and SystemBase
  • Manage entity archetypes
  • Handle entity queries and batching

Jobs System

  • Create IJob implementations
  • Implement IJobEntity for entity processing
  • Handle job dependencies and scheduling
  • Manage native containers

Burst Compiler

  • Enable Burst compilation for jobs
  • Optimize with SIMD instructions
  • Profile Burst-compiled code
  • Handle Burst limitations

Hybrid Workflow

  • Bridge ECS with GameObjects
  • Use companion components
  • Convert existing systems to ECS
  • Implement baking workflow

Prerequisites

  • Unity 2022.3+ recommended
  • Entities package (1.0+)
  • Mathematics package
  • Burst package

Usage Patterns

Component Data

public struct MoveSpeed : IComponentData
{
    public float Value;
}

public struct Velocity : IComponentData
{
    public float3 Value;
}

System Implementation

[BurstCompile]
public partial struct MovementSystem : ISystem
{
    [BurstCompile]
    public void OnUpdate(ref SystemState state)
    {
        float deltaTime = SystemAPI.Time.DeltaTime;

        foreach (var (transform, velocity) in
            SystemAPI.Query<RefRW<LocalTransform>, RefRO<Velocity>>())
        {
            transform.ValueRW.Position += velocity.ValueRO.Value * deltaTime;
        }
    }
}

Job Example

[BurstCompile]
public partial struct MovementJob : IJobEntity
{
    public float DeltaTime;

    void Execute(ref LocalTransform transform, in Velocity velocity)
    {
        transform.Position += velocity.Value * DeltaTime;
    }
}

Best Practices

  1. Keep components small and focused
  2. Use Burst for all performance-critical jobs
  3. Batch entity operations
  4. Minimize structural changes
  5. Profile with Entity Debugger

References

chat Comments (0)

chat_bubble_outline

No comments yet. Be the first to share your thoughts!

Skill Details

GitHub Stars 417
GitHub Forks 21
Created Mar 2026
Last Updated 4个月前
development development architecture patterns

Related Skills

dagger-design-proposals
chevron_right
nestjs-expert
chevron_right
docker-expert
chevron_right
kafka-streams-topology
chevron_right
kafka-architecture
chevron_right

Build your own?

Join 12,000+ developers contributing to the Claude ecosystem.