TinyEcs, simple pure .NET ECS
![]() | TinyEcs Namespace |
[This is preliminary documentation and is subject to change.]
A small pure entity-component-system written entirely in C#.

Class | Description | |
---|---|---|
![]() | ComponentSystemT |
Base class for systems.
|
![]() | DoubleWriteLockException |
This exception is thrown when two different systems are attempting to write to the same entity.
|
![]() | ExcludeAttribute |
Exclude entities that are marked by a tag.
|
![]() | GroupAttribute |
Mark a field as an injected component group.
|
![]() | World |
The World class glues entities, components and systems together.
Use this class to create and destroy entities, get references to components and schedule systems.
It also allows very basic Dependency Injection for ComponentSystems and a simple resource locator.
|

Structure | Description | |
---|---|---|
![]() | Archetype |
An archetype is used to quickly instantiate entities with the same type of components.
|
![]() | Entity |
An entity is a key that defines a relationship between different components.
|
![]() | RoDataStreamT |
A read-only array of components or entities.
|
![]() | RwDataStreamT |
A readable and writable array of components.
|

Interface | Description | |
---|---|---|
![]() | IComponent |
Implement this interface to mark a struct as a component type.
Allows the struct to be wrapped by a Ro/Rw-DataStream.
|
![]() | IData |
Interface to mark a struct as usable for a RoDataStream.
|
![]() | IMessage |
Implement this for messages.
|
![]() | IOnLoad | |
![]() | ITag |
Implement this interface to mark a component as a tag. (Marker component)
|