From b7527d8d687822b8ae45f47638026c41103e418d Mon Sep 17 00:00:00 2001 From: ThomasCharester Date: Mon, 26 Jan 2026 13:29:35 +0300 Subject: [PATCH] UI upd --- .idea/.idea.Infra/.idea/workspace.xml | 53 +- .../AddressableAssetSettings.asset | 2 +- .../AssetGroups/Default Local Group.asset | 22 + Assets/Code/Debug.meta | 3 + Assets/Code/Debug/SceneChooser.cs | 17 + Assets/Code/Debug/SceneChooser.cs.meta | 3 + .../Infrastructure/App/AppStateMachine.cs | 2 + .../Code/Infrastructure/App/PapaInstaller.cs | 3 +- .../App/States/BootstrapState.cs | 15 +- Assets/Code/Infrastructure/Audio.meta | 3 + .../Code/Infrastructure/Audio/AudioFactory.cs | 7 + .../Infrastructure/Audio/AudioFactory.cs.meta | 3 + .../Code/Infrastructure/EventBus/EventBus.cs | 2 +- .../Infrastructure/SceneLoader/SceneId.cs | 3 +- .../Infrastructure/SceneLoader/SceneLoader.cs | 12 +- .../UI/Panels/DamnEmptyPanel.cs | 15 + .../UI/Panels/DamnEmptyPanel.cs.meta | 3 + Assets/Code/Infrastructure/UI/UIPanel.cs | 5 +- Assets/Code/Infrastructure/UI/UIPanelType.cs | 1 + .../UI/Fonts/Bebas Neue Cyrillic SDF.asset | 298 +++++ .../Fonts/Bebas Neue Cyrillic SDF.asset.meta | 8 + .../UI/Fonts/Bebas Neue Cyrillic.ttf | Bin 0 -> 70612 bytes .../UI/Fonts/Bebas Neue Cyrillic.ttf.meta | 21 + Assets/Resources/UI/Panels/SelectPanel.prefab | 596 +++++++++ .../UI/Panels/SelectPanel.prefab.meta | 7 + .../Configs/Scenes/SoundTest.asset | 21 + .../Configs/Scenes/SoundTest.asset.meta | 8 + .../Configs/UI/SceneChooser.asset | 21 + .../Configs/UI/SceneChooser.asset.meta | 8 + Assets/Resources_moved/UI/Canvas.prefab | 82 +- .../UI/Panels/SceneSelectPanel.prefab | 1127 +++++++++++++++++ .../UI/Panels/SceneSelectPanel.prefab.meta | 7 + Assets/Scenes/Bootstrap.unity | 80 -- Assets/Scenes/SoundTest.unity | 170 +++ Assets/Scenes/SoundTest.unity.meta | 7 + Assets/Scenes/UITest.unity | 756 ++--------- ...structure.App.AppStateMachine.Generated.cs | 6 +- .../ConfigLocator.Generated.cs | 14 +- .../SceneLoader.Generated.cs | 8 + .../SystemConfigsReferences.Generated.cs | 12 +- 40 files changed, 2636 insertions(+), 795 deletions(-) create mode 100644 Assets/Code/Debug.meta create mode 100644 Assets/Code/Debug/SceneChooser.cs create mode 100644 Assets/Code/Debug/SceneChooser.cs.meta create mode 100644 Assets/Code/Infrastructure/Audio.meta create mode 100644 Assets/Code/Infrastructure/Audio/AudioFactory.cs create mode 100644 Assets/Code/Infrastructure/Audio/AudioFactory.cs.meta create mode 100644 Assets/Code/Infrastructure/UI/Panels/DamnEmptyPanel.cs create mode 100644 Assets/Code/Infrastructure/UI/Panels/DamnEmptyPanel.cs.meta create mode 100644 Assets/Resources/UI/Fonts/Bebas Neue Cyrillic SDF.asset create mode 100644 Assets/Resources/UI/Fonts/Bebas Neue Cyrillic SDF.asset.meta create mode 100644 Assets/Resources/UI/Fonts/Bebas Neue Cyrillic.ttf create mode 100644 Assets/Resources/UI/Fonts/Bebas Neue Cyrillic.ttf.meta create mode 100644 Assets/Resources/UI/Panels/SelectPanel.prefab create mode 100644 Assets/Resources/UI/Panels/SelectPanel.prefab.meta create mode 100644 Assets/Resources_moved/Configs/Scenes/SoundTest.asset create mode 100644 Assets/Resources_moved/Configs/Scenes/SoundTest.asset.meta create mode 100644 Assets/Resources_moved/Configs/UI/SceneChooser.asset create mode 100644 Assets/Resources_moved/Configs/UI/SceneChooser.asset.meta create mode 100644 Assets/Resources_moved/UI/Panels/SceneSelectPanel.prefab create mode 100644 Assets/Resources_moved/UI/Panels/SceneSelectPanel.prefab.meta create mode 100644 Assets/Scenes/SoundTest.unity create mode 100644 Assets/Scenes/SoundTest.unity.meta diff --git a/.idea/.idea.Infra/.idea/workspace.xml b/.idea/.idea.Infra/.idea/workspace.xml index 17e91e2..1e322c8 100644 --- a/.idea/.idea.Infra/.idea/workspace.xml +++ b/.idea/.idea.Infra/.idea/workspace.xml @@ -5,42 +5,32 @@ - - - - - - - - - + + + + + + + + + - - - - - - - - - - + + + + + + - - - - - - + + + - - - + @@ -117,10 +108,10 @@ - + diff --git a/Assets/AddressableAssetsData/AddressableAssetSettings.asset b/Assets/AddressableAssetsData/AddressableAssetSettings.asset index 7fed698..c13ee38 100644 --- a/Assets/AddressableAssetsData/AddressableAssetSettings.asset +++ b/Assets/AddressableAssetsData/AddressableAssetSettings.asset @@ -15,7 +15,7 @@ MonoBehaviour: m_DefaultGroup: d790534e015d692428ac5a9ce7d2ceb6 m_currentHash: serializedVersion: 2 - Hash: 4373fbbf872dd1eb6fe127578e4c83de + Hash: e468f985d563957211af2aa30c8022ce m_OptimizeCatalogSize: 0 m_BuildRemoteCatalog: 0 m_CatalogRequestsTimeout: 0 diff --git a/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset b/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset index 7187e47..916b83d 100644 --- a/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset +++ b/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset @@ -31,6 +31,12 @@ MonoBehaviour: m_SerializedLabels: - PostProccessVolume FlaggedDuringContentUpdateRestriction: 0 + - m_GUID: 3a4a23e1c0a57dd49b451aa86b9baa3a + m_Address: Assets/Resources_moved/Configs/Scenes/SoundTest.asset + m_ReadOnly: 0 + m_SerializedLabels: + - SceneConfig + FlaggedDuringContentUpdateRestriction: 0 - m_GUID: 4a97987e3a94e0f43b1b57b6ddccac23 m_Address: Assets/Resources_moved/Configs/Camera/CameraSettingsConfig.asset m_ReadOnly: 0 @@ -48,6 +54,11 @@ MonoBehaviour: m_ReadOnly: 0 m_SerializedLabels: [] FlaggedDuringContentUpdateRestriction: 0 + - m_GUID: 86d0b6ef35383e7409df5a352637fea7 + m_Address: UI/Panels/SceneSelectPanel + m_ReadOnly: 0 + m_SerializedLabels: [] + FlaggedDuringContentUpdateRestriction: 0 - m_GUID: a78f552da8f156b469b95652e4b0209d m_Address: DebugClassConfig m_ReadOnly: 0 @@ -73,6 +84,11 @@ MonoBehaviour: m_ReadOnly: 0 m_SerializedLabels: [] FlaggedDuringContentUpdateRestriction: 0 + - m_GUID: cbab6f2c86f23fd48b3ec4b8885b9889 + m_Address: Assets/Scenes/SoundTest.unity + m_ReadOnly: 0 + m_SerializedLabels: [] + FlaggedDuringContentUpdateRestriction: 0 - m_GUID: d2750e654bd192d41a48144c43b41302 m_Address: Assets/Resources_moved/Configs/UI/Logo.asset m_ReadOnly: 0 @@ -105,6 +121,12 @@ MonoBehaviour: m_ReadOnly: 0 m_SerializedLabels: [] FlaggedDuringContentUpdateRestriction: 0 + - m_GUID: eb0c68c73dadde3479d639ba9b2f7395 + m_Address: Assets/Resources_moved/Configs/UI/Logo 1.asset + m_ReadOnly: 0 + m_SerializedLabels: + - UIPanelConfig + FlaggedDuringContentUpdateRestriction: 0 - m_GUID: f146779bcd07c524097072c871162bff m_Address: Assets/Resources_moved/Configs/Camera/FPSConfig.asset m_ReadOnly: 0 diff --git a/Assets/Code/Debug.meta b/Assets/Code/Debug.meta new file mode 100644 index 0000000..3699f24 --- /dev/null +++ b/Assets/Code/Debug.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 9d6b79a067be4ebc97601337f35b808a +timeCreated: 1769346033 \ No newline at end of file diff --git a/Assets/Code/Debug/SceneChooser.cs b/Assets/Code/Debug/SceneChooser.cs new file mode 100644 index 0000000..75fff36 --- /dev/null +++ b/Assets/Code/Debug/SceneChooser.cs @@ -0,0 +1,17 @@ +using Code.Infrastructure.SceneLoader; +using Reflex.Attributes; +using UnityEngine; +using UnityEngine.SceneManagement; + +namespace Code.Debug +{ + public class SceneChooser : MonoBehaviour + { + [Inject] private SceneLoader _sceneLoader; + + public void ChooseScene(int id) + { + _sceneLoader.LoadSceneAsync((SceneId)id, LoadSceneMode.Single).Forget(); + } + } +} \ No newline at end of file diff --git a/Assets/Code/Debug/SceneChooser.cs.meta b/Assets/Code/Debug/SceneChooser.cs.meta new file mode 100644 index 0000000..9f0928b --- /dev/null +++ b/Assets/Code/Debug/SceneChooser.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 72527bc5589647428bb4575953d13a90 +timeCreated: 1769346042 \ No newline at end of file diff --git a/Assets/Code/Infrastructure/App/AppStateMachine.cs b/Assets/Code/Infrastructure/App/AppStateMachine.cs index 4b6c898..a71ead5 100644 --- a/Assets/Code/Infrastructure/App/AppStateMachine.cs +++ b/Assets/Code/Infrastructure/App/AppStateMachine.cs @@ -1,4 +1,5 @@ using Code.Infrastructure.Camera; +using Code.Infrastructure.UI; using Reflex.Attributes; namespace Code.Infrastructure.App @@ -14,6 +15,7 @@ namespace Code.Infrastructure.App { [Inject] public SceneLoader.SceneLoader SceneLoader { get; set; } [Inject] public CameraStateMachine Camera { get; set; } + [Inject] public IUIService UIService { get; set; } } [Generators.StateMachine(typeof(AppStateMachineContext),typeof(AppStates))] diff --git a/Assets/Code/Infrastructure/App/PapaInstaller.cs b/Assets/Code/Infrastructure/App/PapaInstaller.cs index bf219c3..07ace72 100644 --- a/Assets/Code/Infrastructure/App/PapaInstaller.cs +++ b/Assets/Code/Infrastructure/App/PapaInstaller.cs @@ -116,8 +116,7 @@ namespace Code.Infrastructure.App _ui2CamLoading.DoProgress(); _initialLoading.DoProgress(); - _thatRightContainer.Resolve().TryLoadPanel(UIPanelType.Logo); - _thatRightContainer.Resolve().TryLoadPanel(UIPanelType.Loading); + _thatRightContainer.Resolve().TryLoadPanel(UIPanelType.Logo); } public void UILoaded(UIPanelType uiPanelType) diff --git a/Assets/Code/Infrastructure/App/States/BootstrapState.cs b/Assets/Code/Infrastructure/App/States/BootstrapState.cs index 0424c65..757c2a3 100644 --- a/Assets/Code/Infrastructure/App/States/BootstrapState.cs +++ b/Assets/Code/Infrastructure/App/States/BootstrapState.cs @@ -1,6 +1,7 @@ using Code.Infrastructure.Camera; using Code.Infrastructure.Generators; using Code.Infrastructure.SceneLoader; +using Code.Infrastructure.UI; using Cysharp.Threading.Tasks; using UnityEngine; using UnityEngine.SceneManagement; @@ -9,7 +10,7 @@ namespace Code.Infrastructure.App.States { [State(typeof(AppStates),typeof(AppStateMachineContext))] [StateRaisingEvent] - public partial class BootstrapState : IOnGameplaySceneLoadedHandler + public partial class BootstrapState : IOnGameplaySceneLoadedHandler, IUIPanelLoaded { private EventBus.EventBus _eventBus; public BootstrapState(AppStateMachineContext context, EventBus.EventBus eventBus) : base(context,eventBus) @@ -21,11 +22,14 @@ namespace Code.Infrastructure.App.States protected override void OnEnterState() { _eventBus.Subscribe(this); - Context.SceneLoader.LoadSceneAsync(SceneId.Gameplay, LoadSceneMode.Single).Forget(); + + Context.UIService.TryLoadPanel(UIPanelType.DebugSceneChooser); + // Context.SceneLoader.LoadSceneAsync(SceneId.Gameplay, LoadSceneMode.Single).Forget(); } protected override void OnExitState() { + Context.UIService.TryRemovePanel(UIPanelType.DebugSceneChooser); _eventBus.Unsubscribe(this); } @@ -33,5 +37,12 @@ namespace Code.Infrastructure.App.States { } + + public void UILoaded(UIPanelType uiPanelType) + { + if (uiPanelType != UIPanelType.DebugSceneChooser) return; + + Context.UIService.OpenPanel(uiPanelType); + } } } \ No newline at end of file diff --git a/Assets/Code/Infrastructure/Audio.meta b/Assets/Code/Infrastructure/Audio.meta new file mode 100644 index 0000000..6394543 --- /dev/null +++ b/Assets/Code/Infrastructure/Audio.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 117e5c36ac3f47b2bff18075759dd50e +timeCreated: 1769344255 \ No newline at end of file diff --git a/Assets/Code/Infrastructure/Audio/AudioFactory.cs b/Assets/Code/Infrastructure/Audio/AudioFactory.cs new file mode 100644 index 0000000..88ec2aa --- /dev/null +++ b/Assets/Code/Infrastructure/Audio/AudioFactory.cs @@ -0,0 +1,7 @@ +namespace DefaultNamespace +{ + public class AudioFactory + { + + } +} \ No newline at end of file diff --git a/Assets/Code/Infrastructure/Audio/AudioFactory.cs.meta b/Assets/Code/Infrastructure/Audio/AudioFactory.cs.meta new file mode 100644 index 0000000..81da7af --- /dev/null +++ b/Assets/Code/Infrastructure/Audio/AudioFactory.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: cc45c23918ed446681564b467668304b +timeCreated: 1769344269 \ No newline at end of file diff --git a/Assets/Code/Infrastructure/EventBus/EventBus.cs b/Assets/Code/Infrastructure/EventBus/EventBus.cs index c126c14..875e908 100644 --- a/Assets/Code/Infrastructure/EventBus/EventBus.cs +++ b/Assets/Code/Infrastructure/EventBus/EventBus.cs @@ -60,7 +60,7 @@ namespace Code.Infrastructure.EventBus } catch (Exception e) { - Debug.LogError(e); + UnityEngine.Debug.LogError(e); } } } diff --git a/Assets/Code/Infrastructure/SceneLoader/SceneId.cs b/Assets/Code/Infrastructure/SceneLoader/SceneId.cs index 8df3341..6ad7757 100644 --- a/Assets/Code/Infrastructure/SceneLoader/SceneId.cs +++ b/Assets/Code/Infrastructure/SceneLoader/SceneId.cs @@ -6,6 +6,7 @@ namespace Code.Infrastructure.SceneLoader public enum SceneId { MainMenu, - Gameplay + Gameplay, + SoundTest } } \ No newline at end of file diff --git a/Assets/Code/Infrastructure/SceneLoader/SceneLoader.cs b/Assets/Code/Infrastructure/SceneLoader/SceneLoader.cs index 728c8ae..79f38e0 100644 --- a/Assets/Code/Infrastructure/SceneLoader/SceneLoader.cs +++ b/Assets/Code/Infrastructure/SceneLoader/SceneLoader.cs @@ -38,10 +38,16 @@ namespace Code.Infrastructure.SceneLoader public async UniTaskVoid LoadSceneAsync(SceneId id, LoadSceneMode loadMode) { await Addressables.LoadSceneAsync(_sceneInfos[id].SceneAsset, loadMode); - + _scenesActions[id](); - } - + } + + public async UniTaskVoid UnloadSceneAsync(SceneId id) + { + // TODO НЕВОЗМОЖНО ВЫГРУЗИТЬ БЛЯДСКИЕ СЦЕНЫ + // await Addressables.UnloadSceneAsync(_sceneInfos[]) + } + private AsyncOperationHandle> _configHandle; private async UniTaskVoid LoadConfigs(string configReferences) diff --git a/Assets/Code/Infrastructure/UI/Panels/DamnEmptyPanel.cs b/Assets/Code/Infrastructure/UI/Panels/DamnEmptyPanel.cs new file mode 100644 index 0000000..79b689b --- /dev/null +++ b/Assets/Code/Infrastructure/UI/Panels/DamnEmptyPanel.cs @@ -0,0 +1,15 @@ +namespace Code.Infrastructure.UI.Panels +{ + public class DamnEmptyPanel : UIPanel + { + public override void Open() + { + + } + + public override void Close() + { + + } + } +} \ No newline at end of file diff --git a/Assets/Code/Infrastructure/UI/Panels/DamnEmptyPanel.cs.meta b/Assets/Code/Infrastructure/UI/Panels/DamnEmptyPanel.cs.meta new file mode 100644 index 0000000..429536a --- /dev/null +++ b/Assets/Code/Infrastructure/UI/Panels/DamnEmptyPanel.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: ce4e618236c441ca857ad458fa13e09d +timeCreated: 1769347387 \ No newline at end of file diff --git a/Assets/Code/Infrastructure/UI/UIPanel.cs b/Assets/Code/Infrastructure/UI/UIPanel.cs index 3044725..4bb8b57 100644 --- a/Assets/Code/Infrastructure/UI/UIPanel.cs +++ b/Assets/Code/Infrastructure/UI/UIPanel.cs @@ -1,12 +1,13 @@ using System.ComponentModel; using UnityEngine; +using UnityEngine.Serialization; namespace Code.Infrastructure.UI { public abstract class UIPanel : MonoBehaviour { - [field: Category("UIPanel")] public bool InjectMeSenpai { get; protected set; } - + [SerializeField] protected bool injectMeSenpai; + public bool InjectMeSenpai => injectMeSenpai; public abstract void Open(); public abstract void Close(); } diff --git a/Assets/Code/Infrastructure/UI/UIPanelType.cs b/Assets/Code/Infrastructure/UI/UIPanelType.cs index 7de166d..d88e13a 100644 --- a/Assets/Code/Infrastructure/UI/UIPanelType.cs +++ b/Assets/Code/Infrastructure/UI/UIPanelType.cs @@ -4,6 +4,7 @@ namespace Code.Infrastructure.UI { Logo, Loading, + DebugSceneChooser, DebugMenu } } \ No newline at end of file diff --git a/Assets/Resources/UI/Fonts/Bebas Neue Cyrillic SDF.asset b/Assets/Resources/UI/Fonts/Bebas Neue Cyrillic SDF.asset new file mode 100644 index 0000000..efcecbd --- /dev/null +++ b/Assets/Resources/UI/Fonts/Bebas Neue Cyrillic SDF.asset @@ -0,0 +1,298 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &-7713220333506954542 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Bebas Neue Cyrillic Atlas Material + m_Shader: {fileID: 4800000, guid: 68e6db2ebdc24f95958faec2be5558d6, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Cube: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _FaceTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: -3760900223927394989} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OutlineTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _Ambient: 0.5 + - _Bevel: 0.5 + - _BevelClamp: 0 + - _BevelOffset: 0 + - _BevelRoundness: 0 + - _BevelWidth: 0 + - _BumpFace: 0 + - _BumpOutline: 0 + - _ColorMask: 15 + - _CullMode: 0 + - _Diffuse: 0.5 + - _FaceDilate: 0 + - _FaceUVSpeedX: 0 + - _FaceUVSpeedY: 0 + - _GlowInner: 0.05 + - _GlowOffset: 0 + - _GlowOuter: 0.05 + - _GlowPower: 0.75 + - _GradientScale: 10 + - _LightAngle: 3.1416 + - _MaskSoftnessX: 0 + - _MaskSoftnessY: 0 + - _OutlineSoftness: 0 + - _OutlineUVSpeedX: 0 + - _OutlineUVSpeedY: 0 + - _OutlineWidth: 0 + - _PerspectiveFilter: 0.875 + - _Reflectivity: 10 + - _ScaleRatioA: 0.9 + - _ScaleRatioB: 0.73125 + - _ScaleRatioC: 0.73125 + - _ScaleX: 1 + - _ScaleY: 1 + - _ShaderFlags: 0 + - _Sharpness: 0 + - _SpecularPower: 2 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 + - _TextureHeight: 1024 + - _TextureWidth: 1024 + - _UnderlayDilate: 0 + - _UnderlayOffsetX: 0 + - _UnderlayOffsetY: 0 + - _UnderlaySoftness: 0 + - _VertexOffsetX: 0 + - _VertexOffsetY: 0 + - _WeightBold: 0.75 + - _WeightNormal: 0 + m_Colors: + - _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767} + - _EnvMatrixRotation: {r: 0, g: 0, b: 0, a: 0} + - _FaceColor: {r: 1, g: 1, b: 1, a: 1} + - _GlowColor: {r: 0, g: 1, b: 0, a: 0.5} + - _MaskCoord: {r: 0, g: 0, b: 32767, a: 32767} + - _OutlineColor: {r: 0, g: 0, b: 0, a: 1} + - _ReflectFaceColor: {r: 0, g: 0, b: 0, a: 1} + - _ReflectOutlineColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _UnderlayColor: {r: 0, g: 0, b: 0, a: 0.5} + m_BuildTextureStacks: [] + m_AllowLocking: 1 +--- !u!28 &-3760900223927394989 +Texture2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Bebas Neue Cyrillic Atlas + m_ImageContentsHash: + serializedVersion: 2 + Hash: 00000000000000000000000000000000 + m_IsAlphaChannelOptional: 0 + serializedVersion: 4 + m_Width: 1 + m_Height: 1 + m_CompleteImageSize: 1 + m_MipsStripped: 0 + m_TextureFormat: 1 + m_MipCount: 1 + m_IsReadable: 1 + m_IsPreProcessed: 0 + m_IgnoreMipmapLimit: 1 + m_MipmapLimitGroupName: + m_StreamingMipmaps: 0 + m_StreamingMipmapsPriority: 0 + m_VTOnly: 0 + m_AlphaIsTransparency: 0 + m_ImageCount: 1 + m_TextureDimension: 2 + m_TextureSettings: + serializedVersion: 2 + m_FilterMode: 1 + m_Aniso: 1 + m_MipBias: 0 + m_WrapU: 0 + m_WrapV: 0 + m_WrapW: 0 + m_LightmapFormat: 0 + m_ColorSpace: 1 + m_PlatformBlob: + image data: 1 + _typelessdata: 00 + m_StreamData: + serializedVersion: 2 + offset: 0 + size: 0 + path: +--- !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: 71c1514a6bd24e1e882cebbe1904ce04, type: 3} + m_Name: Bebas Neue Cyrillic SDF + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TMP_FontAsset + m_Version: 1.1.0 + m_FaceInfo: + m_FaceIndex: 0 + m_FamilyName: Bebas Neue Cyrillic + m_StyleName: Regular + m_PointSize: 90 + m_Scale: 1 + m_UnitsPerEM: 1000 + m_LineHeight: 90 + m_AscentLine: 67.5 + m_CapLine: 63 + m_MeanLine: 63 + m_Baseline: 0 + m_DescentLine: -22.5 + m_SuperscriptOffset: 67.5 + m_SuperscriptSize: 0.5 + m_SubscriptOffset: -22.5 + m_SubscriptSize: 0.5 + m_UnderlineOffset: -9 + m_UnderlineThickness: 4.5 + m_StrikethroughOffset: 25.2 + m_StrikethroughThickness: 4.5 + m_TabWidth: 14 + m_Material: {fileID: -7713220333506954542} + m_SourceFontFileGUID: b6c686591b2664448b7fa8c3572d26d9 + m_CreationSettings: + sourceFontFileName: + sourceFontFileGUID: b6c686591b2664448b7fa8c3572d26d9 + faceIndex: 0 + pointSizeSamplingMode: 0 + pointSize: 90 + padding: 9 + paddingMode: 2 + packingMode: 0 + atlasWidth: 1024 + atlasHeight: 1024 + characterSetSelectionMode: 7 + characterSequence: + referencedFontAssetGUID: + referencedTextAssetGUID: + fontStyle: 0 + fontStyleModifier: 0 + renderMode: 4165 + includeFontFeatures: 0 + m_SourceFontFile: {fileID: 12800000, guid: b6c686591b2664448b7fa8c3572d26d9, type: 3} + m_SourceFontFilePath: + m_AtlasPopulationMode: 1 + InternalDynamicOS: 0 + m_GlyphTable: [] + m_CharacterTable: [] + m_AtlasTextures: + - {fileID: -3760900223927394989} + m_AtlasTextureIndex: 0 + m_IsMultiAtlasTexturesEnabled: 0 + m_GetFontFeatures: 1 + m_ClearDynamicDataOnBuild: 1 + m_AtlasWidth: 1024 + m_AtlasHeight: 1024 + m_AtlasPadding: 9 + m_AtlasRenderMode: 4165 + m_UsedGlyphRects: [] + m_FreeGlyphRects: + - m_X: 0 + m_Y: 0 + m_Width: 1023 + m_Height: 1023 + m_FontFeatureTable: + m_MultipleSubstitutionRecords: [] + m_LigatureSubstitutionRecords: [] + m_GlyphPairAdjustmentRecords: [] + m_MarkToBaseAdjustmentRecords: [] + m_MarkToMarkAdjustmentRecords: [] + m_ShouldReimportFontFeatures: 0 + m_FallbackFontAssetTable: [] + m_FontWeightTable: + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + fontWeights: [] + normalStyle: 0 + normalSpacingOffset: 0 + boldStyle: 0.75 + boldSpacing: 7 + italicStyle: 35 + tabSize: 10 + m_fontInfo: + Name: + PointSize: 0 + Scale: 0 + CharacterCount: 0 + LineHeight: 0 + Baseline: 0 + Ascender: 0 + CapHeight: 0 + Descender: 0 + CenterLine: 0 + SuperscriptOffset: 0 + SubscriptOffset: 0 + SubSize: 0 + Underline: 0 + UnderlineThickness: 0 + strikethrough: 0 + strikethroughThickness: 0 + TabWidth: 0 + Padding: 0 + AtlasWidth: 0 + AtlasHeight: 0 + m_glyphInfoList: [] + m_KerningTable: + kerningPairs: [] + fallbackFontAssets: [] + atlas: {fileID: 0} diff --git a/Assets/Resources/UI/Fonts/Bebas Neue Cyrillic SDF.asset.meta b/Assets/Resources/UI/Fonts/Bebas Neue Cyrillic SDF.asset.meta new file mode 100644 index 0000000..b269c1b --- /dev/null +++ b/Assets/Resources/UI/Fonts/Bebas Neue Cyrillic SDF.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3b400196bf40a5c4c8407ff5319add23 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/UI/Fonts/Bebas Neue Cyrillic.ttf b/Assets/Resources/UI/Fonts/Bebas Neue Cyrillic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..9466430fb0e25772dcf024c46bdfa181e3ba5eb0 GIT binary patch literal 70612 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 u#K{ST-#i~j AllowedStates.HasFlag(nextState); diff --git a/Assets/UnityCodeGen.Generated/ConfigLocator.Generated.cs b/Assets/UnityCodeGen.Generated/ConfigLocator.Generated.cs index ff197ff..acc4eb7 100644 --- a/Assets/UnityCodeGen.Generated/ConfigLocator.Generated.cs +++ b/Assets/UnityCodeGen.Generated/ConfigLocator.Generated.cs @@ -1,12 +1,12 @@ #pragma warning disable CS0105 - using Code.Infrastructure.Camera; -using Code.Infrastructure.UI; + using Code.Infrastructure.UI; using Code.Infrastructure.Camera; -using Code.Infrastructure.UI; using Code.Infrastructure.Input; using Code.Infrastructure.Volume; +using Code.Infrastructure.Camera; using Code.Infrastructure.SceneLoader; +using Code.Infrastructure.UI; using UnityEngine; #pragma warning restore CS0105 @@ -20,20 +20,20 @@ using Code.Infrastructure.SceneLoader; { SystemConfigsReferences systemConfigsReferences = Resources.Load("SystemConfigsReferences"); - _multipleConfigReferences.Add(typeof(Code.Infrastructure.Camera.CameraSettingsConfig), systemConfigsReferences.CameraSettings); - _multipleConfigReferences.Add(typeof(Code.Infrastructure.UI.UIPanelSettingsConfig), systemConfigsReferences.UIPanelSettings); _singleConfigReferences.Add(typeof(Code.Infrastructure.Camera.GameCameraConfig), systemConfigsReferences.GameCamera); - _singleConfigReferences.Add(typeof(Code.Infrastructure.UI.CanvasSettingsConfig), systemConfigsReferences.CanvasSettings); - _singleConfigReferences.Add(typeof(Code.Infrastructure.Input.InputServiceConfig), systemConfigsReferences.InputService); _multipleConfigReferences.Add(typeof(Code.Infrastructure.Volume.VolumeSettingsConfig), systemConfigsReferences.VolumeSettings); + _multipleConfigReferences.Add(typeof(Code.Infrastructure.Camera.CameraSettingsConfig), systemConfigsReferences.CameraSettings); + _multipleConfigReferences.Add(typeof(Code.Infrastructure.SceneLoader.SceneInfoConfig), systemConfigsReferences.SceneInfo); + _singleConfigReferences.Add(typeof(Code.Infrastructure.UI.CanvasSettingsConfig), systemConfigsReferences.CanvasSettings); + //_singleConfigReferences.Add(typeof(ScenesAssetReferences), systemConfigsReferences.scenesAssetReferences); } } diff --git a/Assets/UnityCodeGen.Generated/SceneLoader.Generated.cs b/Assets/UnityCodeGen.Generated/SceneLoader.Generated.cs index a0f585e..2de63a4 100644 --- a/Assets/UnityCodeGen.Generated/SceneLoader.Generated.cs +++ b/Assets/UnityCodeGen.Generated/SceneLoader.Generated.cs @@ -16,6 +16,9 @@ partial void SetupScenesInfo(){ _scenesActions.Add(SceneId.Gameplay,() => _eventBus.RaiseEvent(h=> h.OnGameplaySceneLoaded())); + + _scenesActions.Add(SceneId.SoundTest,() => _eventBus.RaiseEvent(h=> h.OnSoundTestSceneLoaded())); + } } @@ -29,4 +32,9 @@ partial void SetupScenesInfo(){ void OnGameplaySceneLoaded(); } + public interface IOnSoundTestSceneLoadedHandler : IGlobalSubscriber + { + void OnSoundTestSceneLoaded(); + } + } diff --git a/Assets/UnityCodeGen.Generated/SystemConfigsReferences.Generated.cs b/Assets/UnityCodeGen.Generated/SystemConfigsReferences.Generated.cs index 3ab161d..587528a 100644 --- a/Assets/UnityCodeGen.Generated/SystemConfigsReferences.Generated.cs +++ b/Assets/UnityCodeGen.Generated/SystemConfigsReferences.Generated.cs @@ -1,12 +1,12 @@ #pragma warning disable CS0105 - using Code.Infrastructure.Camera; -using Code.Infrastructure.UI; + using Code.Infrastructure.UI; using Code.Infrastructure.Camera; -using Code.Infrastructure.UI; using Code.Infrastructure.Input; using Code.Infrastructure.Volume; +using Code.Infrastructure.Camera; using Code.Infrastructure.SceneLoader; +using Code.Infrastructure.UI; using UnityEngine.AddressableAssets; #pragma warning restore CS0105 @@ -14,13 +14,13 @@ using Code.Infrastructure.SceneLoader; namespace Code.Infrastructure.Configs{ public partial class SystemConfigsReferences { - public string CameraSettings; -public string UIPanelSettings; + public string UIPanelSettings; public AssetReference GameCamera; -public AssetReference CanvasSettings; public AssetReference InputService; public string VolumeSettings; +public string CameraSettings; public string SceneInfo; +public AssetReference CanvasSettings; } }