Unity ecs
Skill a5c-ai/babysitter/library/specializations/game-development/skills/unity-ecs
Unity DOTS/ECS skill for data-oriented design, jobs system, burst compiler optimization, and high-performance gameplay systems.From its SKILL.md
npx -y skills add a5c-ai/babysitter --skill unity-ecsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
2.6 KB, 507 tokens by cl100k_base, as published. Nobody here has run it
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
- Keep components small and focused
- Use Burst for all performance-critical jobs
- Batch entity operations
- Minimize structural changes
- Profile with Entity Debugger
References
What ships with it: 1 file
1.1 KB alongside SKILL.md
- README.md1.1 KB