Skip to content

A simple setup for Unity ECS 2D (hybrid ECS)

License

Notifications You must be signed in to change notification settings

laicasaane/simple_setup_ecs_2d

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simple Setup for ECS 2D

spritesheet animations

This repo demonstrates an approach to Unity ECS in 2D that answers these questions:

  • How to author and bake entity prefab for 2D character?
  • How to store and use information of spritesheets globally?
  • How to implement spritesheet animation logic in ECS?
  • How to synchronize sprite renderers with entities?
  • How to react to UI events in ECS?
  • How to implement object-pool for sprite presenters?
  • How to utilize TransformAccessArray to update the transform of sprite presenters in parallel?
  • How to use Companion GameObject from Entities Hybrid?

Changelog

Version 3.0.0

Add more functionality

  • Spawn multiple characters
  • Randomly set the animation for each character
  • Automatically move characters
  • Can change global move speed for all characters in real-time
  • Destroy entities

spritesheet animations

Version 3.1.0

  • Refactor some code
  • Teleport characters to the opposite side of the screen if they went out of bounds

spritesheet animations

Version 4.0.0

  • Upgrade to Unity 6000.0.27
  • Fix a compilation error caused by missing TMPro
  • Add Entities Graphics and URP
  • Add a "Version 2" button that switch to Companion GameObject powered by Entities Hybrid
  • Make some changes to subscene and authoring to accomodate the Companion GameObject approach

About companion GameObjects

As in the video below, when "Version 1" is still active, the entities will use GameObjects provided by the GameObjectPool. Thus in the Hierarchy window, GameObjects represent entities will be active too.

version 2

When "Version 2" is activated, entities from version 1 will be destroyed and entities for version 2 will be spawned. This time, they will use Compnanion GameObjects provided by Entities Hybrid instead. Thus GameObjects on the Hierarchy window stay inactive.

Note: As of now, Companion GameObjects generally stay invisible. We don't have any possible mean to directly inspect them.

Version 4.0.1

  • Correct subscene
  • Remove the code to add Prefab tag to prefab entities at runtime

Version 4.0.2

  • Remove [BurstCompile] on some ISystem methods and document the reason.

Credits