From 1e0841e1b4060f8a94ab63f81819cd79eebc6991 Mon Sep 17 00:00:00 2001 From: Santi Andrade Date: Wed, 13 Dec 2023 16:46:58 +0100 Subject: [PATCH 01/54] Create global UIDocument for scenes UI + start implementing UIText systems --- .../AssetGroups/UI.asset | 5 ++ .../Handlers/DebugLogReportHandler.cs | 1 + .../ReportsHandling/ReportCategory.cs | 5 ++ .../DCL/PluginSystem/World/SceneUIPlugin.cs | 33 ++++++++ .../PluginSystem/World/SceneUIPlugin.cs.meta | 3 + .../Assets/Scenes/DynamicSceneLoading.unity | 80 ++++++++++++++++++- .../Assets/Scenes/StaticSceneLoader.unity | 75 ++++++++++++++++- .../Assets/Scripts/ECS/Unity/SceneUI.meta | 3 + .../Scripts/ECS/Unity/SceneUI/Components.meta | 3 + .../SceneUI/Components/UITextComponent.cs | 17 ++++ .../Components/UITextComponent.cs.meta | 3 + .../Unity/SceneUI/ScenesUIRootCanvas.prefab | 50 ++++++++++++ .../SceneUI/ScenesUIRootCanvas.prefab.meta} | 4 +- .../Scripts/ECS/Unity/SceneUI/Systems.meta | 3 + .../Systems/InstantiateSceneUISystem.cs | 55 +++++++++++++ .../Systems/InstantiateSceneUISystem.cs.meta | 3 + .../Scripts/Global/ComponentsContainer.cs | 2 + .../Global/Dynamic/DynamicSceneLoader.cs | 3 +- .../Global/Static/StaticSceneLauncher.cs | 7 +- .../Assets/Scripts/Global/StaticContainer.cs | 6 +- .../Tests/PlayMode/IntegrationTestsSuite.cs | 5 +- .../ProtobufPartialClasses/IDirtyMarker.cs | 10 +++ 22 files changed, 365 insertions(+), 11 deletions(-) create mode 100644 Explorer/Assets/DCL/PluginSystem/World/SceneUIPlugin.cs create mode 100644 Explorer/Assets/DCL/PluginSystem/World/SceneUIPlugin.cs.meta create mode 100644 Explorer/Assets/Scripts/ECS/Unity/SceneUI.meta create mode 100644 Explorer/Assets/Scripts/ECS/Unity/SceneUI/Components.meta create mode 100644 Explorer/Assets/Scripts/ECS/Unity/SceneUI/Components/UITextComponent.cs create mode 100644 Explorer/Assets/Scripts/ECS/Unity/SceneUI/Components/UITextComponent.cs.meta create mode 100644 Explorer/Assets/Scripts/ECS/Unity/SceneUI/ScenesUIRootCanvas.prefab rename Explorer/Assets/{AddressableAssetsData/Windows/addressables_content_state.bin.meta => Scripts/ECS/Unity/SceneUI/ScenesUIRootCanvas.prefab.meta} (63%) create mode 100644 Explorer/Assets/Scripts/ECS/Unity/SceneUI/Systems.meta create mode 100644 Explorer/Assets/Scripts/ECS/Unity/SceneUI/Systems/InstantiateSceneUISystem.cs create mode 100644 Explorer/Assets/Scripts/ECS/Unity/SceneUI/Systems/InstantiateSceneUISystem.cs.meta diff --git a/Explorer/Assets/AddressableAssetsData/AssetGroups/UI.asset b/Explorer/Assets/AddressableAssetsData/AssetGroups/UI.asset index ad83102aac..74b084e05e 100644 --- a/Explorer/Assets/AddressableAssetsData/AssetGroups/UI.asset +++ b/Explorer/Assets/AddressableAssetsData/AssetGroups/UI.asset @@ -52,6 +52,11 @@ MonoBehaviour: m_ReadOnly: 0 m_SerializedLabels: [] FlaggedDuringContentUpdateRestriction: 0 + - m_GUID: 2734962b32be95543bbfc82000f04fb4 + m_Address: ScenesUIRootCanvas + m_ReadOnly: 0 + m_SerializedLabels: [] + FlaggedDuringContentUpdateRestriction: 0 m_ReadOnly: 0 m_Settings: {fileID: 11400000, guid: fc8a9d2b539788c47a5b305639fa8b34, type: 2} m_SchemaSet: diff --git a/Explorer/Assets/DCL/PerformanceAndDiagnostics/Diagnostics/ReportsHandling/Handlers/DebugLogReportHandler.cs b/Explorer/Assets/DCL/PerformanceAndDiagnostics/Diagnostics/ReportsHandling/Handlers/DebugLogReportHandler.cs index 7730fd2e03..4db7e1fac0 100644 --- a/Explorer/Assets/DCL/PerformanceAndDiagnostics/Diagnostics/ReportsHandling/Handlers/DebugLogReportHandler.cs +++ b/Explorer/Assets/DCL/PerformanceAndDiagnostics/Diagnostics/ReportsHandling/Handlers/DebugLogReportHandler.cs @@ -25,6 +25,7 @@ public class DebugLogReportHandler : ReportHandlerBase // Scene Loading blueish { ReportCategory.SCENE_LOADING, ColorUtility.ToHtmlStringRGB(new Color(0.30f, 0.50f, 0.90f)) }, { ReportCategory.SCENE_FACTORY, ColorUtility.ToHtmlStringRGB(new Color(0.15f, 0.35f, 0.75f)) }, + { ReportCategory.SCENE_UI, ColorUtility.ToHtmlStringRGB(new Color(0.10f, 0.30f, 0.45f)) }, // JavaScript { ReportCategory.JAVASCRIPT, ColorUtility.ToHtmlStringRGB(new Color(0.90f, 0.30f, 0.35f)) }, diff --git a/Explorer/Assets/DCL/PerformanceAndDiagnostics/Diagnostics/ReportsHandling/ReportCategory.cs b/Explorer/Assets/DCL/PerformanceAndDiagnostics/Diagnostics/ReportsHandling/ReportCategory.cs index 78c63a8a4d..e4cedfe211 100644 --- a/Explorer/Assets/DCL/PerformanceAndDiagnostics/Diagnostics/ReportsHandling/ReportCategory.cs +++ b/Explorer/Assets/DCL/PerformanceAndDiagnostics/Diagnostics/ReportsHandling/ReportCategory.cs @@ -40,6 +40,11 @@ public static class ReportCategory /// public const string SCENE_LOADING = nameof(SCENE_LOADING); + /// + /// Messages related to the scene UI + /// + public const string SCENE_UI = nameof(SCENE_UI); + /// /// Errors reported from JavaScript /// diff --git a/Explorer/Assets/DCL/PluginSystem/World/SceneUIPlugin.cs b/Explorer/Assets/DCL/PluginSystem/World/SceneUIPlugin.cs new file mode 100644 index 0000000000..03eddddd5b --- /dev/null +++ b/Explorer/Assets/DCL/PluginSystem/World/SceneUIPlugin.cs @@ -0,0 +1,33 @@ +using Arch.SystemGroups; +using DCL.Optimization.Pools; +using DCL.PluginSystem.World.Dependencies; +using ECS.LifeCycle; +using ECS.Unity.SceneUI.Systems; +using System.Collections.Generic; +using UnityEngine.UIElements; + +namespace DCL.PluginSystem.World +{ + public class SceneUIPlugin : IDCLWorldPluginWithoutSettings + { + private readonly UIDocument canvas; + private readonly IComponentPoolsRegistry componentPoolsRegistry; + + public SceneUIPlugin( + UIDocument canvas, + ECSWorldSingletonSharedDependencies singletonSharedDependencies) + { + this.canvas = canvas; + + componentPoolsRegistry = singletonSharedDependencies.ComponentPoolsRegistry; + componentPoolsRegistry.AddComponentPool