Hi there! Fairly new to DOTS so please bare with me. I'm trying to convert some critical aspects of my game over to DOTS. The game currently uses heavy object pooling to get as far as it can (performance wise), but I've decided to start storing and manipulating some of the most performance critical data using ECS with an eye towards possibly moving some subsets of these GameObjects fully into Entities.
As a starting point, a "GameObject Sync" approach, as demonstrated in the HelloCube sample seems like a reasonable approach to start manipulating the vital data (i.e just the transforms to start) in ECS without rewriting the whole game.
In the HelloCube "GameObjectSync" example, we Instantiate (and associate) GameObjects using a given a prefab defined in the "Directory" per entity- but this raises concerns of possibly accruing substantial GC since the game will be adding and removing a substantial number of these. Formerly, the GameObjects (which are now Entities represented by a synced GameObject) were being pooled heavily to minimize GC.
To keep the question simple- is it common to "pool" the representative "synced" GameObjects of Entities as they are added and removed? Is it simply a matter of hooking up my existing GameObject pooling system into the System controlling adding and removing entities? The HelloCube example shows an example of simply Instantiating and syncing a single Entity, but what's the best approach if they are going to be frequently added and removed from the scene. If there are any examples and/or patterns I could use as a basis for this it would be helpful.
I'm also completely open to any other suggestions, so please feel free to tell me that I'm way off the mark here. Any other examples / resources that fit my use case of getting some portions of critical data from MonoBehaviour classes into ECS to transmute (and subsequently drive logic in the existing MonoBehaviour) would be extremely helpful as well. Thanks for reading!