System Components and Aspects

Hi All. I’m new to ECS and currently playing around with the new Input System. I store the Input Action results in a component associated with my InputManagerSystem via a SystemHandle. This is all fine and works with my character controller System no problem. But what I’d really like to do is create an Aspect for the system data so I can do some “post-processing” in the Aspect but the SystemAPI.GetAspect only accepts an Entity, not a SystemHandle. Am I missing something or is there no way to use an Aspect in this scenario? Thanks in advance.
And just a quick additional question. Is it worth putting different Action Map systems in different System Groups and enabling/disabling those Groups depending on which Action Map is active?

Just so you know, Aspects are deprecated so if you’re new to ECS you’re probably just best pretending they don’t exist.

  • Deprecation of Aspects and Entities.ForEach:
    Entities.ForEach was an API that helped many new users quickly take advantage of the power of burst and jobs to iterate over Entities quickly. As time went on, we introduced new APIs that required less code-gen (and thus less impact on compile time) and we heard from users that they largely preferred the structure that IJobEntity and IJobChunk gave them when organizing their code. In order to consolidate our API and improve iteration time, we have decided to remove Entities.ForEach in a future release of Entities and focus on other APIs. The two replacement APIs for Entities.ForEach in the future are IJobEntity and Idiomatic ForEach.

Aspects provide an abstraction over component data inside of ECS. The aim was to provide simpler APIs that involved a large number of individual components. The long term plan was for Aspects to be used in helper methods to manipulate component data in a simpler, safer, and more stable manner. However, changes to our Transform system led Aspects to become less relevant and a growing cost in both complexity and compilation time as they extended to support additional ECS features like Enableable Components, SystemAPI.Query, and others.

Thanks. That’s a bit of a shame, I found them quite useful.