Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Objective
Extracted part of #7335. I used this mainly to patch my game, but this may also simplify the merging process since this PR fixes only one major.
If
DynamicScene
scene is serialized with a component that refers to an entity whosegeneration
!= 0, then this will cause a panic when mapping entities:bevy/crates/bevy_scene/src/dynamic_scene.rs
Lines 143 to 147 in ee697f8
It's because entities are compared with
generation
taken into account and since entities fromDynamicScene
have onlyid
, theirgeneration
will be 0 and it causes mismatch.Solution
Serialize
Entity
inDynamicScene
instead of justu32
. And changeEntity
serialization tou64
to avoid making scene format longer. This way comparsion when mapping entities will be correct and the serialized ron will store plain numbers for dynamic entities as before. The serialized text become even shorter since entities inside components now also plain numbers.I believe it the simplest change and it's was one of the suggestions from
@cart
.Changelog
Changed
Entity
asu64
.Fixed
DynamicScene
deserialization with a component that references entity withgeneration
!= 0.Migration Guide
Entity
instead ofu32
inDynamicScene
.