fix: maintain LocalPlayer-related data on all scenes - #8837
Conversation
…e lifecycle - Local Player is propagated on Initialize from the scene world so it's available on `onStart` - Local Player data updated in every scene even if it's not current
|
Windows and Mac build successful in Unity Cloud! You can find a link to the downloadable artifact below. |
This comment has been minimized.
This comment has been minimized.
|
PR #8837, run #26182654059 Builds: Windows change, Windows baseline, macOS change, macOS baseline Framework 13 i7
|
|
🔍 Claude reviewed this PR and found no blocking issues, but assessed it as complex — human DEV review is still required before merging. |
This comment has been minimized.
This comment has been minimized.
…cene-init' into feat/seed-local-player-crdt-on-scene-init
This comment has been minimized.
This comment has been minimized.
|
PR #8837, run #26220267637 Builds: Windows change, Windows baseline, macOS change, macOS baseline Framework 13 i7
|
This comment has been minimized.
This comment has been minimized.
|
PR #8837, run #26226730238 Builds: Windows change, Windows baseline, macOS change, macOS baseline Framework 13 i7
|
There was a problem hiding this comment.
✔️ PR reviewed and approved by QA on both platforms following instructions playing both happy and un-happy path
Regressions for this ticket had been performed in order to verify that the normal flow is working as expected:
- [✔️ ] Backpack and wearables in world
- [✔️ ] Emotes in world and in backpack
- [ ✔️] Teleport with map/coordinates/Jump In
- [✔️ ] Chat and multiplayer
- [ ✔️] Profile card
- [ ✔️] Skybox
- [ ✔️] Settings
In order to re-create this one :
- Open the index of a scene folder
- Copy the text and erase the other one inside index
- Save the new text
- npm i on the src code
- npm run start
- check that when enteering to the scene the console mentions the name and wallet of the user
Evidence:
20260522-0824-01.1221605.mp4
Fix test assertions for local player PlayerSceneCRDTEntity persistence Local player PlayerSceneCRDTEntity now persists on the persistent entity after leaving a scene, matching the RemovePlayerFromScene early-return behavior from ea34e55. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> @
This comment has been minimized.
This comment has been minimized.
|
PR #8837, run #26280529239 Builds: Windows change, Windows baseline, macOS change, macOS baseline Framework 13 i7
|
# Conflicts: # Explorer/Assets/DCL/Infrastructure/Global/StaticContainer.cs
This comment has been minimized.
This comment has been minimized.
|
@claude review |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Claude finished @mikhail-dcl's task in 3m 40s —— View job PR Review (Re-review)
Root-cause checkPASS. No blocking issuesThe latest synchronize trigger added only dev-merge commits (
Non-blocking observations (unchanged from previous review)
sceneFacade.EcsExecutor.World.Add(targetEntity, new PlayerSceneCRDTEntity(SpecialEntitiesID.PLAYER_ENTITY));If a production caller is ever added, this will throw because
REVIEW_RESULT: PASS ✅ |
|
PR #8837, run #27268519909 Builds: Windows change, Windows baseline, macOS change, macOS baseline How to read this table
Framework 13 i7
|
Fixes decentraland/creator-hub#264
Problem
SDKProfileis propagated to the scene with 1 frame delay, making the following code failonStart:Solution
Make the whole set of Avatar-related components available on the systems'
Initializewhich is called before the scen starts. It's right the same flow seen inWriteMainPlayerTransformSystemSensitive changes
TransformComponentwas available for the player entity right away whereasPlayerIdentityData,AvatarBaseandAvatarEquippedDatawere not available until the player steps on the current sceneP.S. Behavior for remote peers has not changed.
How to QA