I’m in the midst of migrating from Entities 0.3x and 1.0 is quite different from what I’m used to. Appreciate if someone could answer these:
It’s mentioned that OnCreate, OnDestroy has to be implemented even if empty on ISystem. But it seemed to work fine without them. Are these still needed?
[BurstCompile] is needed for ISystem callbacks methods, but not needed for IJobEntity Execute() method?
What’s the difference between [WithAbsent] and [WithNone]?
Is it safe now to use native collections as fields inside IComponentData or ICleanupComponentData?
What’s the best way to share data between ISystems (in the main thread): GetUnsafeSystemRef() or using a singleton?
Any NativeHashMap equivalent for DynamicBuffer?
In the editor, objects in an “open” subscene don’t seem to reset back to their original positions after play mode. Is this intended?
It’s mentioned that OnCreate, OnDestroy has to be implemented even if empty on ISystem. But it seemed to work fine without them. Are these still needed?
pre 44 added default interface implementations so they aren’t required
[BurstCompile] is needed for ISystem callbacks methods, but not needed for IJobEntity Execute() method?
Correct. Burst has never been required for a jobs Execute method only on the struct.
Is it safe now to use native collections as fields inside IComponentData or ICleanupComponentData?
Hmm you can’t query a component with a native container. The only good use case of native containers on components is on singletons where you query the singleton in a system then pass the container into the system
What’s the best way to share data between ISystems (in the main thread): GetUnsafeSystemRef() or using a singleton?
Entities singleton pattern would be the standard way.