Hello,
It seems that the incremental baking always considers components with an Entity field to differ between the conversion and conversion (shadow) worlds. And therefore are often re-copied to the runtime world even if they have not changed, which can reset some fields when it was not intended.
After a multi-day investigation (😅), I noticed in LiveConversionDiffGenerator.cs/UpdateLiveConversion (Line 438) that the EntityManagerDifferOptions UseReferentialEquality is somehow not used:
const EntityManagerDifferOptions options =
EntityManagerDifferOptions.IncludeForwardChangeSet |
EntityManagerDifferOptions.FastForwardShadowWorld |
EntityManagerDifferOptions.ValidateUniqueEntityGuid |
EntityManagerDifferOptions.ClearMissingReferences;
I suppose this was not an issue when entities in the conversion and shadow worlds shared the same ids, but now that ids differ it leads to those painful issues.