diff --git a/Assets/Prefabs/UI/InputField.prefab b/Assets/Prefabs/UI/InputField.prefab index f7b884f..80ddb8e 100644 --- a/Assets/Prefabs/UI/InputField.prefab +++ b/Assets/Prefabs/UI/InputField.prefab @@ -358,6 +358,7 @@ GameObject: - component: {fileID: 4074150049153538292} - component: {fileID: 4074150049153538295} - component: {fileID: 4074150049153538294} + - component: {fileID: 3449087655916893751} m_Layer: 5 m_Name: InputField m_TagString: Untagged @@ -378,7 +379,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 4074150048604612869} - - {fileID: 4074150049273347102} + - {fileID: 9203981373416093932} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -523,7 +524,21 @@ MonoBehaviour: m_isRichTextEditingAllowed: 0 m_LineLimit: 0 m_InputValidator: {fileID: 0} ---- !u!1 &4074150049273347089 +--- !u!114 &3449087655916893751 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4074150049153538248} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 71868102bdcab694bad257204a24561e, type: 3} + m_Name: + m_EditorClassIdentifier: + _outline: {fileID: 0} + _text: {fileID: 0} +--- !u!1 &4901575820022334075 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -531,24 +546,25 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 4074150049273347102} - - component: {fileID: 4074150049273347100} - - component: {fileID: 4074150049273347103} + - component: {fileID: 9203981373416093932} + - component: {fileID: 3602900473172106821} + - component: {fileID: 1692374185723875073} + - component: {fileID: 7971096759404043120} m_Layer: 5 - m_Name: Outline + m_Name: Text Error m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &4074150049273347102 +--- !u!224 &9203981373416093932 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4074150049273347089} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_GameObject: {fileID: 4901575820022334075} + 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 @@ -557,45 +573,119 @@ RectTransform: m_RootOrder: 1 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: 2, y: 2} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &4074150049273347100 + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: -1, y: -5} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!222 &3602900473172106821 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4074150049273347089} + m_GameObject: {fileID: 4901575820022334075} m_CullTransparentMesh: 1 ---- !u!114 &4074150049273347103 +--- !u!114 &1692374185723875073 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4074150049273347089} + m_GameObject: {fileID: 4901575820022334075} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 0.6784314, g: 0.6784314, b: 0.6784314, a: 1} + 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_Sprite: {fileID: 21300000, guid: a42b5c7eaf772a1438753d205d91c3b2, type: 3} - 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: 2 + m_text: Error Text + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 6109aefe671f7ef4aaa1dcbd5791e1e6, type: 2} + m_sharedMaterial: {fileID: 1817443946518195601, guid: 6109aefe671f7ef4aaa1dcbd5791e1e6, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4280107004 + m_fontColor: {r: 0.9882353, g: 0.24705882, b: 0.11372549, 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: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 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} +--- !u!114 &7971096759404043120 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4901575820022334075} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 diff --git a/Assets/Scenes/MainMenu.unity b/Assets/Scenes/MainMenu.unity index 9efd88d..b5d460b 100644 --- a/Assets/Scenes/MainMenu.unity +++ b/Assets/Scenes/MainMenu.unity @@ -358,9 +358,9 @@ RectTransform: m_Father: {fileID: 1482284487} m_RootOrder: 1 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_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 164.5, y: -308.32} m_SizeDelta: {x: 265, y: 372} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &343045030 @@ -457,8 +457,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 164.5, y: -32} - m_SizeDelta: {x: 329, y: 0} + m_AnchoredPosition: {x: 164.5, y: -97.635} + m_SizeDelta: {x: 329, y: 37.51} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &473501308 MonoBehaviour: @@ -768,8 +768,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 164.5, y: 0} - m_SizeDelta: {x: 329, y: 0} + m_AnchoredPosition: {x: 164.5, y: -23.44} + m_SizeDelta: {x: 329, y: 46.88} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &642213541 MonoBehaviour: @@ -884,6 +884,30 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 642213539} m_CullTransparentMesh: 1 +--- !u!114 &662489629 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 3449087655916893751, guid: 26437d23774c4554696005f30156d508, + type: 3} + m_PrefabInstance: {fileID: 4074150049209925846} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 71868102bdcab694bad257204a24561e, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &662489630 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4074150049153538295, guid: 26437d23774c4554696005f30156d508, + type: 3} + m_PrefabInstance: {fileID: 4074150049209925846} + 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: --- !u!1 &900685161 GameObject: m_ObjectHideFlags: 0 @@ -924,7 +948,7 @@ RectTransform: m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: -64, y: 0} + m_SizeDelta: {x: -64, y: -563.61} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &900685163 MonoBehaviour: @@ -1002,8 +1026,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 164.5, y: 0} - m_SizeDelta: {x: 329, y: 0} + m_AnchoredPosition: {x: 164.5, y: -35.16} + m_SizeDelta: {x: 329, y: 70.32} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1000923610 MonoBehaviour: @@ -1270,7 +1294,7 @@ PrefabInstance: - target: {fileID: 1535856271733750747, guid: d09763cc04526ee478a95d5e0e0d9ae4, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 1535856271733750747, guid: d09763cc04526ee478a95d5e0e0d9ae4, type: 3} @@ -1280,7 +1304,7 @@ PrefabInstance: - target: {fileID: 1535856271733750747, guid: d09763cc04526ee478a95d5e0e0d9ae4, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 1535856271733750747, guid: d09763cc04526ee478a95d5e0e0d9ae4, type: 3} @@ -1330,12 +1354,12 @@ PrefabInstance: - target: {fileID: 1535856271733750747, guid: d09763cc04526ee478a95d5e0e0d9ae4, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 164.5 objectReference: {fileID: 0} - target: {fileID: 1535856271733750747, guid: d09763cc04526ee478a95d5e0e0d9ae4, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -568.32 objectReference: {fileID: 0} - target: {fileID: 1535856271733750747, guid: d09763cc04526ee478a95d5e0e0d9ae4, type: 3} @@ -1730,7 +1754,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &1425514775 RectTransform: m_ObjectHideFlags: 0 @@ -1804,7 +1828,7 @@ MonoBehaviour: m_EditorClassIdentifier: _codeInputField: {fileID: 94607392} _codeAcceptButton: {fileID: 5212900060794732874} - _errorText: {fileID: 0} + _inputField: {fileID: 662489629} --- !u!114 &1425514779 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1870,7 +1894,7 @@ RectTransform: m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: -64, y: 0} + m_SizeDelta: {x: -64, y: -261.68} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1482284488 MonoBehaviour: @@ -1988,6 +2012,18 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1884397199} m_CullTransparentMesh: 1 +--- !u!114 &1896755305 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1692374185723875073, guid: 26437d23774c4554696005f30156d508, + type: 3} + m_PrefabInstance: {fileID: 4074150049209925846} + 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: --- !u!1 &1934778629 GameObject: m_ObjectHideFlags: 0 @@ -2083,7 +2119,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &2029291190 RectTransform: m_ObjectHideFlags: 0 @@ -2176,6 +2212,26 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 900685162} m_Modifications: + - target: {fileID: 1692374185723875073, guid: 26437d23774c4554696005f30156d508, + type: 3} + propertyPath: m_fontColor.a + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1692374185723875073, guid: 26437d23774c4554696005f30156d508, + type: 3} + propertyPath: m_fontColor32.rgba + value: 1916924 + objectReference: {fileID: 0} + - target: {fileID: 3449087655916893751, guid: 26437d23774c4554696005f30156d508, + type: 3} + propertyPath: _text + value: + objectReference: {fileID: 1896755305} + - target: {fileID: 3449087655916893751, guid: 26437d23774c4554696005f30156d508, + type: 3} + propertyPath: _outline + value: + objectReference: {fileID: 662489630} - target: {fileID: 4074150048280010648, guid: 26437d23774c4554696005f30156d508, type: 3} propertyPath: m_hasFontAssetChanged @@ -2214,7 +2270,7 @@ PrefabInstance: - target: {fileID: 4074150049153538249, guid: 26437d23774c4554696005f30156d508, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 4074150049153538249, guid: 26437d23774c4554696005f30156d508, type: 3} @@ -2224,12 +2280,12 @@ PrefabInstance: - target: {fileID: 4074150049153538249, guid: 26437d23774c4554696005f30156d508, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 4074150049153538249, guid: 26437d23774c4554696005f30156d508, type: 3} propertyPath: m_SizeDelta.x - value: 0 + value: 329 objectReference: {fileID: 0} - target: {fileID: 4074150049153538249, guid: 26437d23774c4554696005f30156d508, type: 3} @@ -2274,12 +2330,12 @@ PrefabInstance: - target: {fileID: 4074150049153538249, guid: 26437d23774c4554696005f30156d508, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 164.5 objectReference: {fileID: 0} - target: {fileID: 4074150049153538249, guid: 26437d23774c4554696005f30156d508, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -180.39 objectReference: {fileID: 0} - target: {fileID: 4074150049153538249, guid: 26437d23774c4554696005f30156d508, type: 3} @@ -2344,17 +2400,17 @@ PrefabInstance: - target: {fileID: 4074150049153538294, guid: 26437d23774c4554696005f30156d508, type: 3} propertyPath: m_Colors.m_PressedColor.b - value: 0.16862746 + value: 0.19290671 objectReference: {fileID: 0} - target: {fileID: 4074150049153538294, guid: 26437d23774c4554696005f30156d508, type: 3} propertyPath: m_Colors.m_PressedColor.g - value: 0.83137256 + value: 0.680668 objectReference: {fileID: 0} - target: {fileID: 4074150049153538294, guid: 26437d23774c4554696005f30156d508, type: 3} propertyPath: m_Colors.m_PressedColor.r - value: 0.99607843 + value: 0.8018868 objectReference: {fileID: 0} - target: {fileID: 4074150049153538294, guid: 26437d23774c4554696005f30156d508, type: 3} @@ -2442,6 +2498,16 @@ PrefabInstance: propertyPath: m_IsActive value: 0 objectReference: {fileID: 0} + - target: {fileID: 9203981373416093932, guid: 26437d23774c4554696005f30156d508, + type: 3} + propertyPath: m_SizeDelta.x + value: 62.52 + objectReference: {fileID: 0} + - target: {fileID: 9203981373416093932, guid: 26437d23774c4554696005f30156d508, + type: 3} + propertyPath: m_SizeDelta.y + value: 16.41 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 26437d23774c4554696005f30156d508, type: 3} --- !u!1001 &5212900060794732872 @@ -2474,7 +2540,7 @@ PrefabInstance: - target: {fileID: 1535856271733750747, guid: d09763cc04526ee478a95d5e0e0d9ae4, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 1535856271733750747, guid: d09763cc04526ee478a95d5e0e0d9ae4, type: 3} @@ -2484,12 +2550,12 @@ PrefabInstance: - target: {fileID: 1535856271733750747, guid: d09763cc04526ee478a95d5e0e0d9ae4, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 1535856271733750747, guid: d09763cc04526ee478a95d5e0e0d9ae4, type: 3} propertyPath: m_SizeDelta.x - value: 0 + value: 329 objectReference: {fileID: 0} - target: {fileID: 1535856271733750747, guid: d09763cc04526ee478a95d5e0e0d9ae4, type: 3} @@ -2534,12 +2600,12 @@ PrefabInstance: - target: {fileID: 1535856271733750747, guid: d09763cc04526ee478a95d5e0e0d9ae4, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 164.5 objectReference: {fileID: 0} - target: {fileID: 1535856271733750747, guid: d09763cc04526ee478a95d5e0e0d9ae4, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -266.39 objectReference: {fileID: 0} - target: {fileID: 1535856271733750747, guid: d09763cc04526ee478a95d5e0e0d9ae4, type: 3} diff --git a/Assets/Scripts/Core/MainMenu/Authorization.cs b/Assets/Scripts/Core/MainMenu/Authorization.cs index 9d1776d..54d6fc4 100644 --- a/Assets/Scripts/Core/MainMenu/Authorization.cs +++ b/Assets/Scripts/Core/MainMenu/Authorization.cs @@ -14,14 +14,31 @@ public class Authorization : MonoBehaviour [SerializeField] private TMP_InputField _codeInputField; [SerializeField] private Button _codeAcceptButton; - [SerializeField] private TMP_Text _errorText; + [SerializeField] private UIInputField _inputField; private void Start() { - var clientData = _clientDataService.data; - if(clientData != null) + if(_clientDataService.data != null) { - Debug.LogWarning($"данные клианта загружены: город - {clientData.city}, найдено тэгов - {clientData.games.Count}"); + Debug.LogWarning($"данные клианта {_clientDataService.data.id} загружены: город - {(Cities)_clientDataService.data.city}, найдено тэгов - {_clientDataService.data.games.Count}"); + UniTask.Void(async ()=> + { + Response result = new Response(); + int counter = 0; + + while(result.responseData == 0) + { + Debug.LogWarning($"ещё не все метки найдены ({counter})"); + result = await _networkService.GetAsync("game/find", $"id={_clientDataService.data.id}", $"game={counter}"); + Debug.LogWarning(result.responseCode + "/" + result.responseData); + counter++; + + await UniTask.Delay(500); + } + + Debug.LogWarning($"поздравляем! Ваше место в общем зачете - {result.responseData}"); + }); + return; } @@ -46,42 +63,37 @@ public class Authorization : MonoBehaviour private async UniTask SendCode(string inputFieldText) { CityUniqueCode cityUniqueCode = null; - _networkService.OnGetResponse += CheckResponseAdmin; - cityUniqueCode = await _networkService.GetAsync($"auth/admin/{inputFieldText}"); + var resultAdmin = await _networkService.GetAsync($"auth/admin/{inputFieldText}"); + cityUniqueCode = resultAdmin.responseData; - async void CheckResponseAdmin(int responseCode) + if(resultAdmin.responseCode == 0) { - _networkService.OnGetResponse -= CheckResponseAdmin; + var message = "Нет соединения с сервером"; + Debug.LogError(message); + _inputField.ShowErrorAsync(message).Forget(); + } + else if (resultAdmin.responseCode == 404) + { + Debug.LogWarning("такого админа нет в базе. ищем город..."); - if(responseCode == 0) Debug.LogError("Нет соединения с сервером"); - else if (responseCode == 404) + var result = await _networkService.GetAsync($"auth/{inputFieldText}"); + Debug.Log(_clientDataService.citiesTranslation[result.responseData.city]); + + if(result.responseCode == 404) { - Client client = new Client(); - Debug.LogWarning("такого админа нет в базе. ищем город..."); - - _networkService.OnGetResponse += CheckResponse; - client = await _networkService.GetAsync($"auth/{inputFieldText}"); - - void CheckResponse(int responseCode) - { - _networkService.OnGetResponse -= CheckResponse; - - if(responseCode == 404) - { - Debug.LogError("такого кода нет в базе"); - } - else if(responseCode == 0) Debug.LogError("Нет соединения с сервером"); - else if( responseCode == 200) - { - _clientDataService.data = client; - Debug.Log(client.city.ToString()); - } - } + Debug.LogError(result.responseText); + _inputField.ShowErrorAsync(result.responseText).Forget(); } - else if(responseCode == 200) + else if(result.responseCode == 0) Debug.LogError("Нет соединения с сервером"); + else if(result.responseCode == 200) { - Debug.Log(cityUniqueCode.city); + _clientDataService.data = result.responseData; + Debug.Log(result.responseData.city.ToString()); } } + else if(resultAdmin.responseCode == 200) + { + Debug.Log(cityUniqueCode.city); + } } } diff --git a/Assets/Scripts/Core/Models/Models.cs b/Assets/Scripts/Core/Models/Models.cs index 5a3cb33..5f0e612 100644 --- a/Assets/Scripts/Core/Models/Models.cs +++ b/Assets/Scripts/Core/Models/Models.cs @@ -64,7 +64,7 @@ namespace YandexQuest.Models { public string id { get; set; } public Cities city { get; set; } - public List games { get; set; } + public List games { get; set; } = new List(); public DateTime? gameFinishedDate { get; set; } public bool isAdmin { get; set; } } diff --git a/Assets/Scripts/Services/ClientDataService.cs b/Assets/Scripts/Services/ClientDataService.cs index b0871cc..95a9087 100644 --- a/Assets/Scripts/Services/ClientDataService.cs +++ b/Assets/Scripts/Services/ClientDataService.cs @@ -6,6 +6,36 @@ using Newtonsoft.Json; public class ClientDataService { + public readonly Dictionary citiesTranslation = new Dictionary() + { + { Cities.MoscowRedRose, "Москва, Красная Роза" }, + { Cities.MoscowCity, "Москва, Москва-Сити" }, + { Cities.MoscowSkolkovo, "Москва, Сколково" }, + + { Cities.SaintPetersburg, "Санкт-Петербург" }, + { Cities.Yekaterinburg, "Екатеринбург" }, + { Cities.Novosibirsk, "Новосибирск" }, + { Cities.Kazan, "Казань" }, + { Cities.Innopolis, "Иннополис" }, + { Cities.RostovOnDon, "Ростов-На-Дону" }, + { Cities.NizhnyNovgorod, "Нижний Новгород" }, + { Cities.Simferopol, "Симферополь" }, + { Cities.Vladivostok, "Владивосток" }, + { Cities.Krasnodar, "Краснодар" }, + { Cities.Samara, "Самара" }, + { Cities.Chelyabinsk, "Челябинск" }, + { Cities.Perm, "Пермь" }, + { Cities.Tula, "Тула" }, + { Cities.Sochi, "Сочи" }, + { Cities.Ufa, "Уфа" }, + { Cities.Krasnoyarsk, "Красноярск" }, + { Cities.Tumen, "Тюмень" }, + { Cities.Voronezh, "Воронеж" }, + + { Cities.Minsk, "Минск" }, + { Cities.Serbia, "Сербия" } + }; + public Client data { get diff --git a/Assets/Scripts/Services/NetworkService.cs b/Assets/Scripts/Services/NetworkService.cs index 36d69fc..d957b1e 100644 --- a/Assets/Scripts/Services/NetworkService.cs +++ b/Assets/Scripts/Services/NetworkService.cs @@ -7,18 +7,25 @@ using UnityEngine.Networking; using System.Collections.Generic; using Cysharp.Threading.Tasks; +public struct Response +{ + public long responseCode { get; set; } + public string responseText { get; set; } + public T responseData { get; set; } +} + public class NetworkService { - public event Action OnGetResponse; - #if !UNITY_EDITOR private string _apiUrl = "https://yandexquest.graff.tech/"; #else private string _apiUrl = "http://localhost:5000/"; #endif - public async UniTask GetAsync(string requestString) + public async UniTask> GetAsync(string requestString) { + Response responseStruct = new Response(); + using var getRequest = UnityWebRequest.Get(_apiUrl + requestString); getRequest.SetRequestHeader("Content-type", "application/json"); UnityWebRequest operation = new UnityWebRequest(); @@ -29,27 +36,33 @@ public class NetworkService } catch { } - OnGetResponse?.Invoke((int)getRequest.responseCode); + responseStruct.responseCode = getRequest.responseCode; if(getRequest.responseCode != 200) { - return default; + responseStruct.responseText = getRequest.downloadHandler.text; + return responseStruct; } try { TValue result = JsonConvert.DeserializeObject(operation.downloadHandler.text); - return result; + responseStruct.responseData = result; + + return responseStruct; } catch(Exception ex) { - Debug.LogError(ex.Message); - OnGetResponse?.Invoke(-1); - return default; + responseStruct.responseCode = -1; + responseStruct.responseText = ex.Message; + + return responseStruct; } } - public async UniTask GetAsync(string requestString, params string[] query) + public async UniTask> GetAsync(string requestString, params string[] query) { + Response responseStruct = new Response(); + StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append(requestString); stringBuilder.Append("?"); @@ -72,27 +85,31 @@ public class NetworkService } catch { } - OnGetResponse?.Invoke((int)getRequest.responseCode); + responseStruct.responseCode = getRequest.responseCode; if(getRequest.responseCode != 200) { - return default; + responseStruct.responseText = getRequest.downloadHandler.text; + return responseStruct; } try { TValue result = JsonConvert.DeserializeObject(operation.downloadHandler.text); - return result; + responseStruct.responseData = result; + return responseStruct; } catch(Exception ex) { - Debug.LogError(ex.Message); - OnGetResponse?.Invoke(-1); - return default; + responseStruct.responseCode = -1; + responseStruct.responseText = ex.Message; + return responseStruct; } } - public async UniTask GetAsync(string requestString, Dictionary headers = null, params string[] query) + public async UniTask> GetAsync(string requestString, Dictionary headers = null, params string[] query) { + Response responseStruct = new Response(); + StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append(requestString); stringBuilder.Append("?"); @@ -115,31 +132,34 @@ public class NetworkService try { operation = await getRequest.SendWebRequest(); - OnGetResponse?.Invoke((int)operation.responseCode); } catch { } - OnGetResponse?.Invoke((int)getRequest.responseCode); + responseStruct.responseCode = getRequest.responseCode; if(getRequest.responseCode != 200) { - return default; + responseStruct.responseText = getRequest.downloadHandler.text; + return responseStruct; } try { TValue result = JsonConvert.DeserializeObject(operation.downloadHandler.text); - return result; + responseStruct.responseData = result; + + return responseStruct; } catch(Exception ex) { - Debug.LogError(ex.Message); - OnGetResponse?.Invoke(-1); + responseStruct.responseCode = -1; + responseStruct.responseText = ex.Message; + return default; } } public async UniTask PostAsync (string requestString, TValue data, Dictionary headers = null) - { + { string sendingData = JsonConvert.SerializeObject(data); using var postRequest = UnityWebRequest.Post(_apiUrl + requestString, sendingData); byte[] dataBytes = new UTF8Encoding().GetBytes(sendingData); @@ -160,12 +180,12 @@ public class NetworkService operation = await postRequest.SendWebRequest(); } catch { } - - OnGetResponse?.Invoke((int)postRequest.responseCode); } - public async UniTask PostAsync (string requestString, TSendingValue data) + public async UniTask> PostAsync (string requestString, TSendingValue data) { + Response responseStruct = new Response(); + string sendingData = JsonConvert.SerializeObject(data); using var postRequest = UnityWebRequest.Post(_apiUrl + requestString, sendingData); byte[] dataBytes = new UTF8Encoding().GetBytes(sendingData); @@ -181,22 +201,26 @@ public class NetworkService } catch { } - OnGetResponse?.Invoke((int)postRequest.responseCode); - if(postRequest.responseCode == 0) + responseStruct.responseCode = postRequest.responseCode; + if(postRequest.responseCode != 200) { - return default; + responseStruct.responseText = postRequest.downloadHandler.text; + return responseStruct; } try { - return JsonConvert.DeserializeObject(operation.downloadHandler.text); + TResponseValue result = JsonConvert.DeserializeObject(operation.downloadHandler.text); + responseStruct.responseData = result; + + return responseStruct; } catch(Exception ex) { - Debug.LogError(ex.Message); - OnGetResponse?.Invoke(-1); + responseStruct.responseCode = -1; + responseStruct.responseText = ex.Message; - return default; + return responseStruct; } } @@ -217,7 +241,5 @@ public class NetworkService operation = await putRequest.SendWebRequest(); } catch { } - - OnGetResponse?.Invoke((int)putRequest.responseCode); } } \ No newline at end of file diff --git a/Assets/Scripts/UI/UIInputField.cs b/Assets/Scripts/UI/UIInputField.cs new file mode 100644 index 0000000..63727ef --- /dev/null +++ b/Assets/Scripts/UI/UIInputField.cs @@ -0,0 +1,35 @@ +using System.Collections; +using System.Collections.Generic; + +using TMPro; +using DG.Tweening; +using UnityEngine; +using UnityEngine.UI; +using Cysharp.Threading.Tasks; + +public class UIInputField : MonoBehaviour +{ + [SerializeField] private Image _outline; + [SerializeField] private TMP_Text _text; + private TMP_InputField _inputField; + + private void Start() + { + _inputField = GetComponent(); + } + + public async UniTaskVoid ShowErrorAsync(string text) + { + Color startColor = _outline.color; + Color textColor = _text.color; + textColor.a = 1; + + _text.text = text; + _text.DOFade(1, .25f); + + await UniTask.Delay(2000); + + _outline.DOColor(startColor, .25f); + _text.DOFade(0, .25f); + } +} diff --git a/Assets/Scripts/UI/UIInputField.cs.meta b/Assets/Scripts/UI/UIInputField.cs.meta new file mode 100644 index 0000000..ba13dd3 --- /dev/null +++ b/Assets/Scripts/UI/UIInputField.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 71868102bdcab694bad257204a24561e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: