I think understand why it is made this way since everything with ecs is on a "per entity" basis...
I came up with this recursive playback extension method...but I'm hoping there's something better...
public static class ECSParticleSystemExtension
{
public static void Play(this ParticleSystem root, Entity rootEntity, ref SystemState state)
{
root.Play();
if (!state.EntityManager.HasBuffer<Child>(rootEntity))
return;
DynamicBuffer<Child> children = state.EntityManager.GetBuffer<Child>(rootEntity);
for (int i = 0; i < children.Length; i++)
{
Entity childEntity = children[i].Value;
if (!state.EntityManager.HasComponent<ParticleSystem>(childEntity))
continue;
ParticleSystem childFx = state.EntityManager.GetComponentObject<ParticleSystem>(childEntity);
childFx.Play(childEntity, ref state);
}
}
}