-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix: scene start up failure #2822
Conversation
…tion, and the loading screen
* Let Loading Screen Fade after the main operation finishes
…e-statr-up-fail # Conflicts: # Explorer/Assets/DCL/LOD/Systems/VisualSceneStateResolver.cs # Explorer/Assets/DCL/Minimap/MinimapController.cs # Explorer/Assets/Scripts/ECS/SceneLifeCycle/Systems/GatherGltfAssetsSystem.cs # Explorer/Assets/Scripts/Global/Dynamic/RealmNavigator.cs # Explorer/Assets/Scripts/Global/Dynamic/TeleportOperations/LoadLandscapeTeleportOperation.cs # Explorer/Assets/Scripts/Global/Dynamic/TeleportOperations/StopRoomAsyncTeleportOperation.cs
* Fix recovery to the same position after failed teleport
Windows and Mac build successfull in Unity Cloud! You can find a link to the downloadable artifact below.
|
Explorer/Assets/DCL/Character/CharacterMotion/Systems/TeleportCharacterSystem.cs
Show resolved
Hide resolved
Question about the original requirement of the scene fail On Start the client normally, and go to that position. You will see the But, I still have to wait for the loading screen timeout. Is it possible to stop set the result of the teleport as Faulted, so we don't have to wait for the timeout? |
@dalkia I addressed your comment so it will fail immedeately by propagating the exception |
# Conflicts: # Explorer/Assets/DCL/UserInAppInitializationFlow/RealUserInAppInitializationFlow.cs
It works, but I get the following result
If I recall correctly, the rollback teleport is for another PR. But shouldn't the failed scene be unloaded? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix verified on both platforms! Windows and macOS ✅
Fixes #2684
Got rid of empty scenes
There was an issue
which indicates
ISceneStateProvider
is not set for the scene facade.Instead of finding and fixing a potential source of the issue I got rid of the concept of empty scene entirely as it's been completely redundant since we introduced
Terrain
:SceneEntityDefinitionComponent
Centralized handling of
TeleportIntent
Now the single system
TeleportCharacterSystem
is responsible for the whole flow of handlingTeleportIntents
:Strict binding of loading progress with loading screen
There was no direct binding of the state of
AsyncLoadProcessReport
with the view.Empowered
LoadingScreen
to handle all possible outcomes of the process (which is driven externally) and reflect them on the report itself, including:Now, UI fully relies on the state of
AsyncLoadProcessReport
and does not do any checks of timeouts, errors, etc locally.Exception-free flow is fixed up
There was a mix of exceptions and
Results
in Teleport and Start-up flows. The guidelines are formalized and the code was refactored to follow this principle.Before it was hard to follow the flow that can freely violate the contracts.
Related issues
The loading process can be interrupted at any time, leaving the game in an unpredictable state. This PR does not cover this case as it's much wider. It will be addressed in the separate issue #2821
How to QA: