From f940cbffe0a414aa596e7e48f7a9719afeb54c8e Mon Sep 17 00:00:00 2001 From: ThomasCharester Date: Mon, 3 Nov 2025 12:31:26 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A2=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20Addressa?= =?UTF-8?q?bles=20=D0=B8=20UniTask=20=D0=B2=20InstantiateAsync=20=D0=B8=20?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=D1=87=D0=B8=D1=85=20=D0=BF=D1=80=D0=BE=D1=86?= =?UTF-8?q?=D0=B5=D1=81=D1=81=D0=B0=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AddressableAssetGroupSortSettings.asset | 16 ++ ...dressableAssetGroupSortSettings.asset.meta | 8 + .../AddressableAssetSettings.asset | 2 +- .../AssetGroups/Default Local Group.asset | 27 +- .../Code/App/AppStates/BootstrapState.cs | 12 + .../Code/App/AppStates/BootstrapState.cs.meta | 3 + .../Code/App/AppStates/GameplayState.cs | 17 +- .../Code/App/AppStates/MainMenuState.cs | 3 +- .../Assets/Code/App/BootstrapInstaller.cs | 42 ++- .../Code/App/StateMachine/AppStateMachine.cs | 3 + .../Assets/Code/Configs/CameraConfig.cs | 1 + .../Assets/Code/Configs/UIConfig.cs | 2 - .../Assets/Code/Constants/StringPaths.cs | 4 + .../Gameplay/Camera/CameraStateMachine.cs | 2 + .../Assets/Code/Scenes/SceneLoaderService.cs | 21 +- .../Code/StateMachine/AbstractStateMachine.cs | 4 +- .../Code/StaticData/IStaticDataService.cs | 5 + .../Code/StaticData/StaticDataService.cs | 12 +- Game/CourierOld/Assets/Code/UI/IUIService.cs | 4 +- .../Assets/Code/UI/Panels/LoadingPanel.cs | 18 -- .../Assets/Code/UI/Panels/LoadingScreen.cs | 22 ++ ...ingPanel.cs.meta => LoadingScreen.cs.meta} | 0 Game/CourierOld/Assets/Code/UI/UIService.cs | 14 +- .../Resources/Configs/App/CameraConfig.asset | 1 - .../Resources/Configs/App/UIConfig.asset | 33 ++- .../Assets/Resources/Scenes/Initial.unity | 102 +++++++ .../Assets/Resources/UI/LoadingScreen.prefab | 91 ------- Game/CourierOld/Assets/Resources_moved.meta | 8 + .../Assets/Resources_moved/Prefabs.meta | 8 + .../Assets/Resources_moved/Prefabs/App.meta | 8 + .../CourierOld/Assets/Resources_moved/UI.meta | 8 + .../UI/Canvas.prefab | 0 .../UI/Canvas.prefab.meta | 0 .../UI/GameOver.prefab | 0 .../UI/GameOver.prefab.meta | 0 .../UI/Gameplay.prefab | 0 .../UI/Gameplay.prefab.meta | 0 .../Resources_moved/UI/LoadingCanvas.prefab | 248 ++++++++++++++++++ .../UI/LoadingCanvas.prefab.meta | 7 + .../Resources_moved/UI/LoadingScreen.prefab | 214 +++++++++++++++ .../UI/LoadingScreen.prefab.meta | 0 .../UI/MainMenu.prefab | 0 .../UI/MainMenu.prefab.meta | 0 .../ProjectSettings/EditorBuildSettings.asset | 1 + .../ProjectSettings/TagManager.asset | 29 +- 45 files changed, 811 insertions(+), 189 deletions(-) create mode 100644 Game/CourierOld/Assets/AddressableAssetsData/AddressableAssetGroupSortSettings.asset create mode 100644 Game/CourierOld/Assets/AddressableAssetsData/AddressableAssetGroupSortSettings.asset.meta create mode 100644 Game/CourierOld/Assets/Code/App/AppStates/BootstrapState.cs create mode 100644 Game/CourierOld/Assets/Code/App/AppStates/BootstrapState.cs.meta delete mode 100644 Game/CourierOld/Assets/Code/UI/Panels/LoadingPanel.cs create mode 100644 Game/CourierOld/Assets/Code/UI/Panels/LoadingScreen.cs rename Game/CourierOld/Assets/Code/UI/Panels/{LoadingPanel.cs.meta => LoadingScreen.cs.meta} (100%) delete mode 100644 Game/CourierOld/Assets/Resources/UI/LoadingScreen.prefab create mode 100644 Game/CourierOld/Assets/Resources_moved.meta create mode 100644 Game/CourierOld/Assets/Resources_moved/Prefabs.meta create mode 100644 Game/CourierOld/Assets/Resources_moved/Prefabs/App.meta create mode 100644 Game/CourierOld/Assets/Resources_moved/UI.meta rename Game/CourierOld/Assets/{Resources => Resources_moved}/UI/Canvas.prefab (100%) rename Game/CourierOld/Assets/{Resources => Resources_moved}/UI/Canvas.prefab.meta (100%) rename Game/CourierOld/Assets/{Resources => Resources_moved}/UI/GameOver.prefab (100%) rename Game/CourierOld/Assets/{Resources => Resources_moved}/UI/GameOver.prefab.meta (100%) rename Game/CourierOld/Assets/{Resources => Resources_moved}/UI/Gameplay.prefab (100%) rename Game/CourierOld/Assets/{Resources => Resources_moved}/UI/Gameplay.prefab.meta (100%) create mode 100644 Game/CourierOld/Assets/Resources_moved/UI/LoadingCanvas.prefab create mode 100644 Game/CourierOld/Assets/Resources_moved/UI/LoadingCanvas.prefab.meta create mode 100644 Game/CourierOld/Assets/Resources_moved/UI/LoadingScreen.prefab rename Game/CourierOld/Assets/{Resources => Resources_moved}/UI/LoadingScreen.prefab.meta (100%) rename Game/CourierOld/Assets/{Resources => Resources_moved}/UI/MainMenu.prefab (100%) rename Game/CourierOld/Assets/{Resources => Resources_moved}/UI/MainMenu.prefab.meta (100%) diff --git a/Game/CourierOld/Assets/AddressableAssetsData/AddressableAssetGroupSortSettings.asset b/Game/CourierOld/Assets/AddressableAssetsData/AddressableAssetGroupSortSettings.asset new file mode 100644 index 0000000..2ce407a --- /dev/null +++ b/Game/CourierOld/Assets/AddressableAssetsData/AddressableAssetGroupSortSettings.asset @@ -0,0 +1,16 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dea69d41f90c6ea4fa55c27c1d60c145, type: 3} + m_Name: AddressableAssetGroupSortSettings + m_EditorClassIdentifier: Unity.Addressables.Editor::UnityEditor.AddressableAssets.Settings.GroupSchemas.AddressableAssetGroupSortSettings + sortOrder: + - d447fc60305c17a17bf20948ab295a45 diff --git a/Game/CourierOld/Assets/AddressableAssetsData/AddressableAssetGroupSortSettings.asset.meta b/Game/CourierOld/Assets/AddressableAssetsData/AddressableAssetGroupSortSettings.asset.meta new file mode 100644 index 0000000..a0e6320 --- /dev/null +++ b/Game/CourierOld/Assets/AddressableAssetsData/AddressableAssetGroupSortSettings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 88c15d5f41d582974a9b7218c493e4a7 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/CourierOld/Assets/AddressableAssetsData/AddressableAssetSettings.asset b/Game/CourierOld/Assets/AddressableAssetsData/AddressableAssetSettings.asset index 05bd7ec..621410e 100644 --- a/Game/CourierOld/Assets/AddressableAssetsData/AddressableAssetSettings.asset +++ b/Game/CourierOld/Assets/AddressableAssetsData/AddressableAssetSettings.asset @@ -15,7 +15,7 @@ MonoBehaviour: m_DefaultGroup: d447fc60305c17a17bf20948ab295a45 m_currentHash: serializedVersion: 2 - Hash: 00000000000000000000000000000000 + Hash: a5ab84fba20ef21fba7fe17acd37cd61 m_OptimizeCatalogSize: 0 m_BuildRemoteCatalog: 0 m_CatalogRequestsTimeout: 0 diff --git a/Game/CourierOld/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset b/Game/CourierOld/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset index fa5f732..0c38334 100644 --- a/Game/CourierOld/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset +++ b/Game/CourierOld/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset @@ -14,7 +14,32 @@ MonoBehaviour: m_EditorClassIdentifier: Unity.Addressables.Editor::UnityEditor.AddressableAssets.Settings.AddressableAssetGroup m_GroupName: Default Local Group m_GUID: d447fc60305c17a17bf20948ab295a45 - m_SerializeEntries: [] + m_SerializeEntries: + - m_GUID: 23e11d2c8a4f12f4ea9a7a43d1118464 + m_Address: Gameplay + m_ReadOnly: 0 + m_SerializedLabels: [] + FlaggedDuringContentUpdateRestriction: 0 + - m_GUID: 48aebfe8826dc0df79d047b5afbf8f5b + m_Address: Canvas + m_ReadOnly: 0 + m_SerializedLabels: [] + FlaggedDuringContentUpdateRestriction: 0 + - m_GUID: b2e8dc2aeb0311cd8a826b51cf8e94dc + m_Address: GameOver + m_ReadOnly: 0 + m_SerializedLabels: [] + FlaggedDuringContentUpdateRestriction: 0 + - m_GUID: c566fc932edefbbee9e53271eac3c560 + m_Address: MainMenu + m_ReadOnly: 0 + m_SerializedLabels: [] + FlaggedDuringContentUpdateRestriction: 0 + - m_GUID: f23b9fce9594618e5b75845f1cae50de + m_Address: LoadingScreen + m_ReadOnly: 0 + m_SerializedLabels: [] + FlaggedDuringContentUpdateRestriction: 0 m_ReadOnly: 0 m_Settings: {fileID: 11400000, guid: 2588e84eb64800d0781c574a37fa48d8, type: 2} m_SchemaSet: diff --git a/Game/CourierOld/Assets/Code/App/AppStates/BootstrapState.cs b/Game/CourierOld/Assets/Code/App/AppStates/BootstrapState.cs new file mode 100644 index 0000000..9e793e2 --- /dev/null +++ b/Game/CourierOld/Assets/Code/App/AppStates/BootstrapState.cs @@ -0,0 +1,12 @@ +using Code.App.StateMachine; +using Code.StateMachine; + +namespace Code.App.AppStates +{ + public class BootstrapState : BaseState + { + public BootstrapState(AppStateMachineContext context) : base(context) + { + } + } +} \ No newline at end of file diff --git a/Game/CourierOld/Assets/Code/App/AppStates/BootstrapState.cs.meta b/Game/CourierOld/Assets/Code/App/AppStates/BootstrapState.cs.meta new file mode 100644 index 0000000..4abcea4 --- /dev/null +++ b/Game/CourierOld/Assets/Code/App/AppStates/BootstrapState.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 0183e73a08c64332babded3df3d06b95 +timeCreated: 1762122962 \ No newline at end of file diff --git a/Game/CourierOld/Assets/Code/App/AppStates/GameplayState.cs b/Game/CourierOld/Assets/Code/App/AppStates/GameplayState.cs index 298bfec..badc891 100644 --- a/Game/CourierOld/Assets/Code/App/AppStates/GameplayState.cs +++ b/Game/CourierOld/Assets/Code/App/AppStates/GameplayState.cs @@ -22,17 +22,19 @@ namespace Code.App.AppStates public override void EnterState() { + _uiLoaded = _sceneLoaded = false; + Context.UIService.LoadingScreen.Show(); - Context.SceneLoaderService.LoadSceneAsync((int)SceneIds.MovementDev, callBack: OnSceneLoaded); // TODO Фабрика говна Nada + _playerMoney = Context.PlayerFactory.CreatePlayerMoney(); + _playerHealth = Context.PlayerFactory.CreatePlayerHealth(); + + _playerHealth.OnDeath += EndGame; + + Context.SceneLoaderService.LoadSceneAsync((int)SceneIds.MovementDev, callBack: OnSceneLoaded); // TODO Фабрика игрока Nada Context.UIService.SwitchPanelTo(UIPanel.Gameplay, callback: PostUILoaded); - _playerMoney = Context.PlayerFactory.CreatePlayerMoney(); - _playerHealth = Context.PlayerFactory.CreatePlayerHealth(); - - _playerHealth.OnDeath += EndGame; - Context.InputService.DebugBindAction((int)ActionMappings.Debug, (int)DebugActions.GiveHealth, GiveHealth); Context.InputService.DebugBindAction((int)ActionMappings.Debug, (int)DebugActions.GiveMoney, GiveMoney); Context.InputService.DebugBindAction((int)ActionMappings.Debug, (int)DebugActions.LooseHealth, LooseHealth); @@ -47,8 +49,7 @@ namespace Code.App.AppStates private void PostUILoaded() { - ((GameplayPanel)(Context.UIService.CurrentPanel)).Initialize(_playerMoney, _playerHealth); - Context.UIService.LoadingScreen.Hide(); + ((GameplayPanel)Context.UIService.CurrentPanel).Initialize(_playerMoney, _playerHealth); _uiLoaded = true; CheckIfLoaded(); } diff --git a/Game/CourierOld/Assets/Code/App/AppStates/MainMenuState.cs b/Game/CourierOld/Assets/Code/App/AppStates/MainMenuState.cs index f685e26..5e1badb 100644 --- a/Game/CourierOld/Assets/Code/App/AppStates/MainMenuState.cs +++ b/Game/CourierOld/Assets/Code/App/AppStates/MainMenuState.cs @@ -21,8 +21,7 @@ namespace Code.App.AppStates public override void EnterState() { - _uiLoaded = false; - _sceneLoaded = false; + _uiLoaded = _sceneLoaded = false; Context.UIService.LoadingScreen.Show(); diff --git a/Game/CourierOld/Assets/Code/App/BootstrapInstaller.cs b/Game/CourierOld/Assets/Code/App/BootstrapInstaller.cs index 1d2a839..a85d39c 100644 --- a/Game/CourierOld/Assets/Code/App/BootstrapInstaller.cs +++ b/Game/CourierOld/Assets/Code/App/BootstrapInstaller.cs @@ -1,20 +1,25 @@ +using System.Threading.Tasks; using Code.App.StateMachine; using Code.Configs; +using Code.Constants; using Code.Gameplay.Camera; using Code.Gameplay.Player; using Code.Input; using Code.Scenes; using Code.StaticData; using Code.UI; +using Code.UI.Panels; +using Cysharp.Threading.Tasks; using Reflex.Core; using Reflex.Injectors; using UnityEngine; +using UnityEngine.AddressableAssets; +using UnityEngine.InputSystem; namespace Code.App { public class BootstrapInstaller : MonoBehaviour, IInstaller { - public void InstallBindings(ContainerBuilder containerBuilder) { InstallStaticData(containerBuilder, out IStaticDataService staticDataService); @@ -37,8 +42,10 @@ namespace Code.App // CameraService cameraService = Instantiate(staticDataService.CameraConfig.cameraPrefab); // containerBuilder.AddSingleton(cameraService); // DontDestroyOnLoad(cameraService); - - Camera camera = Instantiate(staticDataService.CameraConfig.cameraPrefab); + + // var task = staticDataService.InstantiateAsset(staticDataService.CameraConfig.cameraAssetReference); + Camera camera = Instantiate(staticDataService.CameraConfig.cameraPrefab); + // Camera camera = task.Result; DontDestroyOnLoad(camera); containerBuilder.AddSingleton(camera); } @@ -50,7 +57,7 @@ namespace Code.App containerBuilder.AddSingleton(infrastructureUnit); containerBuilder.AddSingleton(infrastructureUnit.AddComponent(), - typeof(ICoroutineRunner)); + typeof(ICoroutineRunner)); containerBuilder.AddSingleton(infrastructureUnit.AddComponent()); containerBuilder.AddSingleton(infrastructureUnit.AddComponent()); } @@ -61,29 +68,42 @@ namespace Code.App staticDataService.Load(); containerBuilder.AddSingleton(staticDataService, typeof(IStaticDataService)); - // containerBuilder.AddSingleton(staticDataService.InputConfig.inputActionAsset, typeof(InputActionAsset)); + containerBuilder.AddSingleton(staticDataService.InputConfig.inputActionAsset, typeof(InputActionAsset)); containerBuilder.AddSingleton(staticDataService.InputConfig, typeof(InputConfig)); containerBuilder.AddSingleton(staticDataService.CameraConfig, typeof(CameraConfig)); containerBuilder.AddSingleton(staticDataService.PlayerConfig, typeof(PlayerConfig)); containerBuilder.AddSingleton(staticDataService.CharacterConfig, typeof(CharacterConfig)); + containerBuilder.AddSingleton(staticDataService.UIConfig, typeof(UIConfig)); // containerBuilder.AddSingleton(staticDataService.UIConfig.canvasPrefab, typeof(Canvas)); // containerBuilder.AddSingleton(staticDataService.UIConfig.uiElementsPrefabs, typeof(UIElement[])); } + private bool _onUiLoaded; + private AppStateMachine _appStateMachine; private void Bootstrap(Container container) { - AppStateMachine appStateMachine = container.Resolve(); - appStateMachine.Initialize(); - - AttributeInjector.Inject(appStateMachine.StateMachineContext, container); + _appStateMachine = container.Resolve(); + _appStateMachine.Initialize(); + AttributeInjector.Inject(_appStateMachine.StateMachineContext, container); CameraStateMachine cameraStateMachine = container.Resolve(); AttributeInjector.Inject(cameraStateMachine.StateMachineContext, container); - cameraStateMachine.Initialize(); + var loadingScreen = GameObject.FindWithTag(Tags.LoadingScreen); + DontDestroyOnLoad(loadingScreen); + + IUIService uiService = container.Resolve(); + uiService.Initialize(loadingScreen.GetComponent()); + + TryStartGame(); + } + + private void TryStartGame() + { + // TODO: поменяно для теста - appStateMachine + _appStateMachine .SwitchState(AppState.MainMenu) .AllowStateTransition(AppState.Gameplay); } diff --git a/Game/CourierOld/Assets/Code/App/StateMachine/AppStateMachine.cs b/Game/CourierOld/Assets/Code/App/StateMachine/AppStateMachine.cs index 8e29af7..b9d1c98 100644 --- a/Game/CourierOld/Assets/Code/App/StateMachine/AppStateMachine.cs +++ b/Game/CourierOld/Assets/Code/App/StateMachine/AppStateMachine.cs @@ -7,6 +7,7 @@ namespace Code.App.StateMachine { public override void Initialize() { + States.Add(AppState.Bootstrap, new BootstrapState(StateMachineContext)); States.Add(AppState.MainMenu, new MainMenuState(StateMachineContext)); States.Add(AppState.Gameplay, new GameplayState(StateMachineContext)); States.Add(AppState.GameOver, new GameOverState(StateMachineContext)); @@ -16,6 +17,8 @@ namespace Code.App.StateMachine AllowedStates |= AppState.MainMenu; AllowedStates |= AppState.Gameplay; AllowedStates |= AppState.MovementDev; + + CurrentBaseState = States[AppState.Bootstrap]; } protected override bool CheckTransitionAllowed(AppState nextState) => AllowedStates.HasFlag(nextState); diff --git a/Game/CourierOld/Assets/Code/Configs/CameraConfig.cs b/Game/CourierOld/Assets/Code/Configs/CameraConfig.cs index 2d8a4d2..3ee2f0d 100644 --- a/Game/CourierOld/Assets/Code/Configs/CameraConfig.cs +++ b/Game/CourierOld/Assets/Code/Configs/CameraConfig.cs @@ -1,4 +1,5 @@ using UnityEngine; +using UnityEngine.AddressableAssets; namespace Code.Configs { diff --git a/Game/CourierOld/Assets/Code/Configs/UIConfig.cs b/Game/CourierOld/Assets/Code/Configs/UIConfig.cs index 43dd93c..c5e325a 100644 --- a/Game/CourierOld/Assets/Code/Configs/UIConfig.cs +++ b/Game/CourierOld/Assets/Code/Configs/UIConfig.cs @@ -1,7 +1,5 @@ -using Code.UI; using UnityEngine; using UnityEngine.AddressableAssets; -using UnityEngine.Serialization; namespace Code.Configs { diff --git a/Game/CourierOld/Assets/Code/Constants/StringPaths.cs b/Game/CourierOld/Assets/Code/Constants/StringPaths.cs index e392007..25ddfa7 100644 --- a/Game/CourierOld/Assets/Code/Constants/StringPaths.cs +++ b/Game/CourierOld/Assets/Code/Constants/StringPaths.cs @@ -6,4 +6,8 @@ namespace Code.Constants public const string ConfigMultiple = "Configs/{0}"; } + public static class Tags + { + public const string LoadingScreen = "LoadingScreen"; + } } \ No newline at end of file diff --git a/Game/CourierOld/Assets/Code/Gameplay/Camera/CameraStateMachine.cs b/Game/CourierOld/Assets/Code/Gameplay/Camera/CameraStateMachine.cs index 5118886..098fa1b 100644 --- a/Game/CourierOld/Assets/Code/Gameplay/Camera/CameraStateMachine.cs +++ b/Game/CourierOld/Assets/Code/Gameplay/Camera/CameraStateMachine.cs @@ -12,6 +12,8 @@ namespace Code.Gameplay.Camera States.Add(CameraMode.Static, new StaticState(StateMachineContext)); States.Add(CameraMode.FirstPerson, new FirstPersonState(StateMachineContext)); States.Add(CameraMode.ThirdPerson, new ThirdPersonState(StateMachineContext)); + + CurrentBaseState = States[CameraMode.Static]; } diff --git a/Game/CourierOld/Assets/Code/Scenes/SceneLoaderService.cs b/Game/CourierOld/Assets/Code/Scenes/SceneLoaderService.cs index ef5e4a8..b7633da 100644 --- a/Game/CourierOld/Assets/Code/Scenes/SceneLoaderService.cs +++ b/Game/CourierOld/Assets/Code/Scenes/SceneLoaderService.cs @@ -1,9 +1,5 @@ using System; -using System.Collections; -using Code.App; using Cysharp.Threading.Tasks; -using Reflex.Attributes; -using UnityEngine; using UnityEngine.SceneManagement; namespace Code.Scenes @@ -13,22 +9,25 @@ namespace Code.Scenes public async UniTaskVoid LoadSceneAsync(string sceneName, float waitFor = 0f, Action callBack = null) { // if (waitFor > 0f) - // yield return new WaitForSeconds(waitFor); + // yield return new WaitForSeconds(waitFor); // AsyncOperation waitNextScene = SceneManager.LoadSceneAsync(sceneName, LoadSceneMode.Single); // while (!waitNextScene.isDone) - // yield return null; + // yield return null; // callback?.Invoke(); await UniTask.Delay(TimeSpan.FromSeconds(waitFor)); - await SceneManager.LoadSceneAsync(sceneName, LoadSceneMode.Single); + await SceneManager.LoadSceneAsync(sceneName, LoadSceneMode.Single).ToUniTask(); + callBack?.Invoke(); } - public async UniTaskVoid LoadSceneAsync(int sceneId, float waitFor = 0f, Action callBack = null) + public async UniTaskVoid LoadSceneAsync(int sceneId, float waitFor = 0f, Action callBack = null) { - await UniTask.Delay(TimeSpan.FromSeconds(waitFor)); - await SceneManager.LoadSceneAsync(sceneId, LoadSceneMode.Single); + await UniTask.WhenAll( + UniTask.Delay(TimeSpan.FromSeconds(waitFor)), + SceneManager.LoadSceneAsync(sceneId, LoadSceneMode.Single).ToUniTask()); + callBack?.Invoke(); } } -} +} \ No newline at end of file diff --git a/Game/CourierOld/Assets/Code/StateMachine/AbstractStateMachine.cs b/Game/CourierOld/Assets/Code/StateMachine/AbstractStateMachine.cs index 1ddb408..dcab9e4 100644 --- a/Game/CourierOld/Assets/Code/StateMachine/AbstractStateMachine.cs +++ b/Game/CourierOld/Assets/Code/StateMachine/AbstractStateMachine.cs @@ -8,8 +8,8 @@ namespace Code.StateMachine : MonoBehaviour where TStateMachineContext : new() { - public TStateEnum CurrentState { get; private set; } - public BaseState CurrentBaseState { get; private set; } + public TStateEnum CurrentState { get; protected set; } + public BaseState CurrentBaseState { get; protected set; } private BaseState _previousBaseState; protected Dictionary> States = new(); diff --git a/Game/CourierOld/Assets/Code/StaticData/IStaticDataService.cs b/Game/CourierOld/Assets/Code/StaticData/IStaticDataService.cs index df1ecc5..4bf2617 100644 --- a/Game/CourierOld/Assets/Code/StaticData/IStaticDataService.cs +++ b/Game/CourierOld/Assets/Code/StaticData/IStaticDataService.cs @@ -1,6 +1,10 @@ using System; using System.Collections.Generic; +using System.Threading.Tasks; using Code.Configs; +using Cysharp.Threading.Tasks; +using UnityEngine; +using UnityEngine.AddressableAssets; namespace Code.StaticData { @@ -13,5 +17,6 @@ namespace Code.StaticData CharacterConfig CharacterConfig { get; } UIConfig UIConfig { get; } PlayerConfig PlayerConfig { get; } + Task InstantiateAsset(AssetReference assetReference) where T : Behaviour; } } \ No newline at end of file diff --git a/Game/CourierOld/Assets/Code/StaticData/StaticDataService.cs b/Game/CourierOld/Assets/Code/StaticData/StaticDataService.cs index 787c766..cffc9e7 100644 --- a/Game/CourierOld/Assets/Code/StaticData/StaticDataService.cs +++ b/Game/CourierOld/Assets/Code/StaticData/StaticDataService.cs @@ -1,6 +1,9 @@ +using System.Threading.Tasks; using Code.Configs; -using Code.Constants; -using UnityEngine; +using Code.Constants; +using Cysharp.Threading.Tasks; +using UnityEngine; +using UnityEngine.AddressableAssets; namespace Code.StaticData { @@ -22,5 +25,10 @@ namespace Code.StaticData UIConfig = Resources.Load(string.Format(StringPaths.ConfigSingle, "App", "UIConfig")); PlayerConfig = Resources.Load(string.Format(StringPaths.ConfigSingle, "App", "PlayerConfig")); } + + public async Task InstantiateAsset(AssetReference assetReference) where T : Behaviour + { + return (await Addressables.InstantiateAsync(assetReference).ToUniTask()).GetComponent(); + } } } \ No newline at end of file diff --git a/Game/CourierOld/Assets/Code/UI/IUIService.cs b/Game/CourierOld/Assets/Code/UI/IUIService.cs index ad2197b..51998c0 100644 --- a/Game/CourierOld/Assets/Code/UI/IUIService.cs +++ b/Game/CourierOld/Assets/Code/UI/IUIService.cs @@ -1,4 +1,5 @@ using System; +using Code.UI.Panels; namespace Code.UI { @@ -6,6 +7,7 @@ namespace Code.UI { void SwitchPanelTo(UIPanel uiPanel, Action callback = null); UIElement CurrentPanel { get; } - LoadingPanel LoadingScreen { get; } + LoadingScreen LoadingScreen { get; } + void Initialize(LoadingScreen loadingScreen); } } \ No newline at end of file diff --git a/Game/CourierOld/Assets/Code/UI/Panels/LoadingPanel.cs b/Game/CourierOld/Assets/Code/UI/Panels/LoadingPanel.cs deleted file mode 100644 index 300dc66..0000000 --- a/Game/CourierOld/Assets/Code/UI/Panels/LoadingPanel.cs +++ /dev/null @@ -1,18 +0,0 @@ -using UnityEngine; -using UnityEngine.UI; - -namespace Code.UI -{ - public class LoadingPanel : UIElement - { - [SerializeField] private Image _background; - public override void Hide() - { - _background.enabled = false; - } - public override void Show() - { - _background.enabled = true; - } - } -} \ No newline at end of file diff --git a/Game/CourierOld/Assets/Code/UI/Panels/LoadingScreen.cs b/Game/CourierOld/Assets/Code/UI/Panels/LoadingScreen.cs new file mode 100644 index 0000000..911025d --- /dev/null +++ b/Game/CourierOld/Assets/Code/UI/Panels/LoadingScreen.cs @@ -0,0 +1,22 @@ +using TMPro; +using UnityEngine; +using UnityEngine.UI; + +namespace Code.UI.Panels +{ + public class LoadingScreen : UIElement + { + [SerializeField] private Image background; + [SerializeField] private TMP_Text loadingTitle; + public override void Hide() + { + background.enabled = false; + loadingTitle.enabled = false; + } + public override void Show() + { + background.enabled = true; + loadingTitle.enabled = true; + } + } +} \ No newline at end of file diff --git a/Game/CourierOld/Assets/Code/UI/Panels/LoadingPanel.cs.meta b/Game/CourierOld/Assets/Code/UI/Panels/LoadingScreen.cs.meta similarity index 100% rename from Game/CourierOld/Assets/Code/UI/Panels/LoadingPanel.cs.meta rename to Game/CourierOld/Assets/Code/UI/Panels/LoadingScreen.cs.meta diff --git a/Game/CourierOld/Assets/Code/UI/UIService.cs b/Game/CourierOld/Assets/Code/UI/UIService.cs index 85180de..ab1e296 100644 --- a/Game/CourierOld/Assets/Code/UI/UIService.cs +++ b/Game/CourierOld/Assets/Code/UI/UIService.cs @@ -1,4 +1,6 @@ using System; +using System.Threading; +using Code.UI.Panels; using Cysharp.Threading.Tasks; using UnityEngine; using Object = UnityEngine.Object; @@ -11,24 +13,24 @@ namespace Code.UI private IUIFactory _factory; public UIElement CurrentPanel { get; private set; } - public LoadingPanel LoadingScreen { get; private set; } + public LoadingScreen LoadingScreen { get; private set; } public UIService(IUIFactory factory) { _factory = factory; - Initialize(); } - private async void Initialize() + public async void Initialize(LoadingScreen loadingScreen) { - _canvas = await _factory.CreateCanvas(); + LoadingScreen = loadingScreen; + LoadingScreen.Show(); - LoadingScreen = (LoadingPanel) await _factory.CreatePanel(_canvas,UIPanel.Loading); + _canvas = await _factory.CreateCanvas(); } public async void SwitchPanelTo(UIPanel uiPanel, Action callback = null) { - if (!_canvas) await UniTask.WaitUntilValueChanged(_canvas, _ => !_canvas); + if (!_canvas) await UniTask.WaitUntil(() => _canvas ); if(CurrentPanel) Object.Destroy(CurrentPanel.gameObject); diff --git a/Game/CourierOld/Assets/Resources/Configs/App/CameraConfig.asset b/Game/CourierOld/Assets/Resources/Configs/App/CameraConfig.asset index e99f2c7..c3dc659 100644 --- a/Game/CourierOld/Assets/Resources/Configs/App/CameraConfig.asset +++ b/Game/CourierOld/Assets/Resources/Configs/App/CameraConfig.asset @@ -22,6 +22,5 @@ MonoBehaviour: minVerticalAngle: -70 maxVerticalAngle: 70 defaultVerticalAngle: 10 - defaultCameraMode: 0 defaultFollowPosition: {x: 0, y: 0, z: 0} cameraPrefab: {fileID: 374984699890489845, guid: 8b8bf5712dc5a42c7bd8e22cddb884c3, type: 3} diff --git a/Game/CourierOld/Assets/Resources/Configs/App/UIConfig.asset b/Game/CourierOld/Assets/Resources/Configs/App/UIConfig.asset index da67571..c5f13bf 100644 --- a/Game/CourierOld/Assets/Resources/Configs/App/UIConfig.asset +++ b/Game/CourierOld/Assets/Resources/Configs/App/UIConfig.asset @@ -12,9 +12,30 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: feaa36c74e094e0aa24b3983957a6e4e, type: 3} m_Name: UIConfig m_EditorClassIdentifier: Assembly-CSharp::Code.Configs.UIConfig - uiElementsPrefabs: - - {fileID: 3884205628991346111, guid: f23b9fce9594618e5b75845f1cae50de, type: 3} - - {fileID: 6346323538546406952, guid: c566fc932edefbbee9e53271eac3c560, type: 3} - - {fileID: 1153528220012302015, guid: 23e11d2c8a4f12f4ea9a7a43d1118464, type: 3} - - {fileID: 1024894541486592765, guid: b2e8dc2aeb0311cd8a826b51cf8e94dc, type: 3} - canvasPrefab: {fileID: 1289568913299077295, guid: 48aebfe8826dc0df79d047b5afbf8f5b, type: 3} + uiPanelsAssetReferences: + - m_AssetGUID: f23b9fce9594618e5b75845f1cae50de + m_SubObjectName: + m_SubObjectType: + m_SubObjectGUID: + m_EditorAssetChanged: 1 + - m_AssetGUID: c566fc932edefbbee9e53271eac3c560 + m_SubObjectName: + m_SubObjectType: + m_SubObjectGUID: + m_EditorAssetChanged: 0 + - m_AssetGUID: 23e11d2c8a4f12f4ea9a7a43d1118464 + m_SubObjectName: + m_SubObjectType: + m_SubObjectGUID: + m_EditorAssetChanged: 0 + - m_AssetGUID: b2e8dc2aeb0311cd8a826b51cf8e94dc + m_SubObjectName: + m_SubObjectType: + m_SubObjectGUID: + m_EditorAssetChanged: 1 + canvasAssetReference: + m_AssetGUID: 48aebfe8826dc0df79d047b5afbf8f5b + m_SubObjectName: + m_SubObjectType: + m_SubObjectGUID: + m_EditorAssetChanged: 0 diff --git a/Game/CourierOld/Assets/Resources/Scenes/Initial.unity b/Game/CourierOld/Assets/Resources/Scenes/Initial.unity index eef873d..f9a0261 100644 --- a/Game/CourierOld/Assets/Resources/Scenes/Initial.unity +++ b/Game/CourierOld/Assets/Resources/Scenes/Initial.unity @@ -163,8 +163,110 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1883358809 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1289568913299077295, guid: 70a878a1d7f1c360fb0d882850b60079, type: 3} + propertyPath: m_SortingOrder + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 6466339271797533664, guid: 70a878a1d7f1c360fb0d882850b60079, type: 3} + propertyPath: m_Name + value: LoadingCanvas + objectReference: {fileID: 0} + - target: {fileID: 8109840523973613115, guid: 70a878a1d7f1c360fb0d882850b60079, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8109840523973613115, guid: 70a878a1d7f1c360fb0d882850b60079, type: 3} + propertyPath: m_Pivot.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8109840523973613115, guid: 70a878a1d7f1c360fb0d882850b60079, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8109840523973613115, guid: 70a878a1d7f1c360fb0d882850b60079, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8109840523973613115, guid: 70a878a1d7f1c360fb0d882850b60079, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8109840523973613115, guid: 70a878a1d7f1c360fb0d882850b60079, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8109840523973613115, guid: 70a878a1d7f1c360fb0d882850b60079, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8109840523973613115, guid: 70a878a1d7f1c360fb0d882850b60079, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8109840523973613115, guid: 70a878a1d7f1c360fb0d882850b60079, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8109840523973613115, guid: 70a878a1d7f1c360fb0d882850b60079, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8109840523973613115, guid: 70a878a1d7f1c360fb0d882850b60079, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8109840523973613115, guid: 70a878a1d7f1c360fb0d882850b60079, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8109840523973613115, guid: 70a878a1d7f1c360fb0d882850b60079, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8109840523973613115, guid: 70a878a1d7f1c360fb0d882850b60079, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8109840523973613115, guid: 70a878a1d7f1c360fb0d882850b60079, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8109840523973613115, guid: 70a878a1d7f1c360fb0d882850b60079, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8109840523973613115, guid: 70a878a1d7f1c360fb0d882850b60079, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8109840523973613115, guid: 70a878a1d7f1c360fb0d882850b60079, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8109840523973613115, guid: 70a878a1d7f1c360fb0d882850b60079, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8109840523973613115, guid: 70a878a1d7f1c360fb0d882850b60079, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 70a878a1d7f1c360fb0d882850b60079, type: 3} --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 m_Roots: - {fileID: 1253837929} + - {fileID: 1883358809} diff --git a/Game/CourierOld/Assets/Resources/UI/LoadingScreen.prefab b/Game/CourierOld/Assets/Resources/UI/LoadingScreen.prefab deleted file mode 100644 index ca6fed8..0000000 --- a/Game/CourierOld/Assets/Resources/UI/LoadingScreen.prefab +++ /dev/null @@ -1,91 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &1265158496168560331 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7726542507327209555} - - component: {fileID: 2847325221482566557} - - component: {fileID: 5214871017756599939} - - component: {fileID: 3884205628991346111} - m_Layer: 5 - m_Name: LoadingScreen - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7726542507327209555 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1265158496168560331} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &2847325221482566557 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1265158496168560331} - m_CullTransparentMesh: 1 ---- !u!114 &5214871017756599939 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1265158496168560331} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image - m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 0.392} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!114 &3884205628991346111 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1265158496168560331} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 8b4a0cb6cea947c6b085269973968c12, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::Code.UI.LoadingPanel - _background: {fileID: 5214871017756599939} diff --git a/Game/CourierOld/Assets/Resources_moved.meta b/Game/CourierOld/Assets/Resources_moved.meta new file mode 100644 index 0000000..bfca4b6 --- /dev/null +++ b/Game/CourierOld/Assets/Resources_moved.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7d5e1f0b61a30c6399a2fedfe251cc88 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/CourierOld/Assets/Resources_moved/Prefabs.meta b/Game/CourierOld/Assets/Resources_moved/Prefabs.meta new file mode 100644 index 0000000..73bcd17 --- /dev/null +++ b/Game/CourierOld/Assets/Resources_moved/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3cde3ec5e61402c6085992404eb22e00 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/CourierOld/Assets/Resources_moved/Prefabs/App.meta b/Game/CourierOld/Assets/Resources_moved/Prefabs/App.meta new file mode 100644 index 0000000..1395799 --- /dev/null +++ b/Game/CourierOld/Assets/Resources_moved/Prefabs/App.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ec35c2344f1496d2c8656a5675cea047 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/CourierOld/Assets/Resources_moved/UI.meta b/Game/CourierOld/Assets/Resources_moved/UI.meta new file mode 100644 index 0000000..b79c3b1 --- /dev/null +++ b/Game/CourierOld/Assets/Resources_moved/UI.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: db68c27b4ca0b008eb7403403f74dbce +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/CourierOld/Assets/Resources/UI/Canvas.prefab b/Game/CourierOld/Assets/Resources_moved/UI/Canvas.prefab similarity index 100% rename from Game/CourierOld/Assets/Resources/UI/Canvas.prefab rename to Game/CourierOld/Assets/Resources_moved/UI/Canvas.prefab diff --git a/Game/CourierOld/Assets/Resources/UI/Canvas.prefab.meta b/Game/CourierOld/Assets/Resources_moved/UI/Canvas.prefab.meta similarity index 100% rename from Game/CourierOld/Assets/Resources/UI/Canvas.prefab.meta rename to Game/CourierOld/Assets/Resources_moved/UI/Canvas.prefab.meta diff --git a/Game/CourierOld/Assets/Resources/UI/GameOver.prefab b/Game/CourierOld/Assets/Resources_moved/UI/GameOver.prefab similarity index 100% rename from Game/CourierOld/Assets/Resources/UI/GameOver.prefab rename to Game/CourierOld/Assets/Resources_moved/UI/GameOver.prefab diff --git a/Game/CourierOld/Assets/Resources/UI/GameOver.prefab.meta b/Game/CourierOld/Assets/Resources_moved/UI/GameOver.prefab.meta similarity index 100% rename from Game/CourierOld/Assets/Resources/UI/GameOver.prefab.meta rename to Game/CourierOld/Assets/Resources_moved/UI/GameOver.prefab.meta diff --git a/Game/CourierOld/Assets/Resources/UI/Gameplay.prefab b/Game/CourierOld/Assets/Resources_moved/UI/Gameplay.prefab similarity index 100% rename from Game/CourierOld/Assets/Resources/UI/Gameplay.prefab rename to Game/CourierOld/Assets/Resources_moved/UI/Gameplay.prefab diff --git a/Game/CourierOld/Assets/Resources/UI/Gameplay.prefab.meta b/Game/CourierOld/Assets/Resources_moved/UI/Gameplay.prefab.meta similarity index 100% rename from Game/CourierOld/Assets/Resources/UI/Gameplay.prefab.meta rename to Game/CourierOld/Assets/Resources_moved/UI/Gameplay.prefab.meta diff --git a/Game/CourierOld/Assets/Resources_moved/UI/LoadingCanvas.prefab b/Game/CourierOld/Assets/Resources_moved/UI/LoadingCanvas.prefab new file mode 100644 index 0000000..0f95e41 --- /dev/null +++ b/Game/CourierOld/Assets/Resources_moved/UI/LoadingCanvas.prefab @@ -0,0 +1,248 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &6466339271797533664 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8109840523973613115} + - component: {fileID: 1289568913299077295} + - component: {fileID: 3580625140137645467} + - component: {fileID: 3828985249605650759} + - component: {fileID: 8641845112538475365} + m_Layer: 5 + m_Name: LoadingCanvas + m_TagString: LoadingScreen + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8109840523973613115 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6466339271797533664} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1163370339091459898} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!223 &1289568913299077295 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6466339271797533664} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 25 + m_UpdateRectTransformForStandalone: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &3580625140137645467 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6466339271797533664} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.CanvasScaler + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 1920, y: 1080} + m_ScreenMatchMode: 2 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!114 &3828985249605650759 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6466339271797533664} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.GraphicRaycaster + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &8641845112538475365 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6466339271797533664} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8b4a0cb6cea947c6b085269973968c12, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::Code.UI.LoadingPanel + background: {fileID: 3693479315240438250} + loadingTitle: {fileID: 4606001437437564059} +--- !u!1001 &8871860720278728553 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 8109840523973613115} + m_Modifications: + - target: {fileID: 1265158496168560331, guid: f23b9fce9594618e5b75845f1cae50de, type: 3} + propertyPath: m_Name + value: LoadingScreen + objectReference: {fileID: 0} + - target: {fileID: 4968846662699318258, guid: f23b9fce9594618e5b75845f1cae50de, type: 3} + propertyPath: m_fontSize + value: 381.15 + objectReference: {fileID: 0} + - target: {fileID: 7726542507327209555, guid: f23b9fce9594618e5b75845f1cae50de, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7726542507327209555, guid: f23b9fce9594618e5b75845f1cae50de, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7726542507327209555, guid: f23b9fce9594618e5b75845f1cae50de, type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7726542507327209555, guid: f23b9fce9594618e5b75845f1cae50de, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7726542507327209555, guid: f23b9fce9594618e5b75845f1cae50de, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7726542507327209555, guid: f23b9fce9594618e5b75845f1cae50de, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7726542507327209555, guid: f23b9fce9594618e5b75845f1cae50de, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7726542507327209555, guid: f23b9fce9594618e5b75845f1cae50de, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7726542507327209555, guid: f23b9fce9594618e5b75845f1cae50de, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7726542507327209555, guid: f23b9fce9594618e5b75845f1cae50de, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7726542507327209555, guid: f23b9fce9594618e5b75845f1cae50de, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7726542507327209555, guid: f23b9fce9594618e5b75845f1cae50de, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7726542507327209555, guid: f23b9fce9594618e5b75845f1cae50de, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7726542507327209555, guid: f23b9fce9594618e5b75845f1cae50de, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7726542507327209555, guid: f23b9fce9594618e5b75845f1cae50de, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7726542507327209555, guid: f23b9fce9594618e5b75845f1cae50de, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7726542507327209555, guid: f23b9fce9594618e5b75845f1cae50de, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7726542507327209555, guid: f23b9fce9594618e5b75845f1cae50de, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7726542507327209555, guid: f23b9fce9594618e5b75845f1cae50de, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7726542507327209555, guid: f23b9fce9594618e5b75845f1cae50de, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: 3884205628991346111, guid: f23b9fce9594618e5b75845f1cae50de, type: 3} + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: f23b9fce9594618e5b75845f1cae50de, type: 3} +--- !u!224 &1163370339091459898 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 7726542507327209555, guid: f23b9fce9594618e5b75845f1cae50de, type: 3} + m_PrefabInstance: {fileID: 8871860720278728553} + m_PrefabAsset: {fileID: 0} +--- !u!114 &3693479315240438250 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 5214871017756599939, guid: f23b9fce9594618e5b75845f1cae50de, type: 3} + m_PrefabInstance: {fileID: 8871860720278728553} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image +--- !u!114 &4606001437437564059 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4968846662699318258, guid: f23b9fce9594618e5b75845f1cae50de, type: 3} + m_PrefabInstance: {fileID: 8871860720278728553} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI diff --git a/Game/CourierOld/Assets/Resources_moved/UI/LoadingCanvas.prefab.meta b/Game/CourierOld/Assets/Resources_moved/UI/LoadingCanvas.prefab.meta new file mode 100644 index 0000000..8743cad --- /dev/null +++ b/Game/CourierOld/Assets/Resources_moved/UI/LoadingCanvas.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 70a878a1d7f1c360fb0d882850b60079 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/CourierOld/Assets/Resources_moved/UI/LoadingScreen.prefab b/Game/CourierOld/Assets/Resources_moved/UI/LoadingScreen.prefab new file mode 100644 index 0000000..6068f0c --- /dev/null +++ b/Game/CourierOld/Assets/Resources_moved/UI/LoadingScreen.prefab @@ -0,0 +1,214 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1265158496168560331 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7726542507327209555} + - component: {fileID: 2847325221482566557} + - component: {fileID: 5214871017756599939} + m_Layer: 5 + m_Name: LoadingScreen + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7726542507327209555 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1265158496168560331} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2711475139437937240} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2847325221482566557 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1265158496168560331} + m_CullTransparentMesh: 1 +--- !u!114 &5214871017756599939 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1265158496168560331} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &5639516207954169781 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2711475139437937240} + - component: {fileID: 2675659082655514100} + - component: {fileID: 4968846662699318258} + m_Layer: 5 + m_Name: LoadingTitle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2711475139437937240 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5639516207954169781} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7726542507327209555} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2675659082655514100 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5639516207954169781} + m_CullTransparentMesh: 1 +--- !u!114 &4968846662699318258 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5639516207954169781} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Loading now be patient + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: a3ba170dcd95c5776a5c39de19dff119, type: 2} + m_sharedMaterial: {fileID: 8532510215145708138, guid: a3ba170dcd95c5776a5c39de19dff119, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 49.4 + m_fontSizeBase: 43.92 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 1 + m_fontSizeMax: 1000 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} diff --git a/Game/CourierOld/Assets/Resources/UI/LoadingScreen.prefab.meta b/Game/CourierOld/Assets/Resources_moved/UI/LoadingScreen.prefab.meta similarity index 100% rename from Game/CourierOld/Assets/Resources/UI/LoadingScreen.prefab.meta rename to Game/CourierOld/Assets/Resources_moved/UI/LoadingScreen.prefab.meta diff --git a/Game/CourierOld/Assets/Resources/UI/MainMenu.prefab b/Game/CourierOld/Assets/Resources_moved/UI/MainMenu.prefab similarity index 100% rename from Game/CourierOld/Assets/Resources/UI/MainMenu.prefab rename to Game/CourierOld/Assets/Resources_moved/UI/MainMenu.prefab diff --git a/Game/CourierOld/Assets/Resources/UI/MainMenu.prefab.meta b/Game/CourierOld/Assets/Resources_moved/UI/MainMenu.prefab.meta similarity index 100% rename from Game/CourierOld/Assets/Resources/UI/MainMenu.prefab.meta rename to Game/CourierOld/Assets/Resources_moved/UI/MainMenu.prefab.meta diff --git a/Game/CourierOld/ProjectSettings/EditorBuildSettings.asset b/Game/CourierOld/ProjectSettings/EditorBuildSettings.asset index 7a51409..a6a4b4f 100644 --- a/Game/CourierOld/ProjectSettings/EditorBuildSettings.asset +++ b/Game/CourierOld/ProjectSettings/EditorBuildSettings.asset @@ -22,4 +22,5 @@ EditorBuildSettings: guid: d9388377850f132deba2cb3b3c603fdc m_configObjects: com.unity.addressableassets: {fileID: 11400000, guid: 9338e51d1f2239ddbb8f2c6232a2b678, type: 2} + com.unity.input.settings.actions: {fileID: -944628639613478452, guid: 052faaac586de48259a63d0c4782560b, type: 3} m_UseUCBPForAssetBundles: 0 diff --git a/Game/CourierOld/ProjectSettings/TagManager.asset b/Game/CourierOld/ProjectSettings/TagManager.asset index 6413d11..4403c3e 100644 --- a/Game/CourierOld/ProjectSettings/TagManager.asset +++ b/Game/CourierOld/ProjectSettings/TagManager.asset @@ -2,8 +2,9 @@ %TAG !u! tag:unity3d.com,2011: --- !u!78 &1 TagManager: - serializedVersion: 2 - tags: [] + serializedVersion: 3 + tags: + - LoadingScreen layers: - Default - TransparentFX @@ -50,27 +51,3 @@ TagManager: - Light Layer 5 - Light Layer 6 - Light Layer 7 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -