From 45ca25d08a52e268dbc43028f5d507af752b51c8 Mon Sep 17 00:00:00 2001 From: EmirHanMamak Date: Sat, 17 Jan 2026 18:28:59 +0300 Subject: [PATCH] feat(auth): improve login flow --- Playvoi.Client/Assets/_Hub/Art.meta | 8 + Playvoi.Client/Assets/_Hub/Art/Loading.meta | 8 + .../Assets/_Hub/Art/Loading/LoadingCircle.png | Bin 0 -> 1438 bytes .../_Hub/Art/Loading/LoadingCircle.png.meta | 156 +++++++++ .../Assets/_Hub/Scenes/HubScene.unity | 305 ++++++++++++++++++ .../Assets/_Hub/Scripts/UI/LoginUI.cs | 27 +- Playvoi.Client/Assets/_Network/Shared.meta | 8 + .../Assets/_Network/Shared/PacketType.cs | 13 + .../Assets/_Network/Shared/PacketType.cs.meta | 3 + 9 files changed, 526 insertions(+), 2 deletions(-) create mode 100644 Playvoi.Client/Assets/_Hub/Art.meta create mode 100644 Playvoi.Client/Assets/_Hub/Art/Loading.meta create mode 100644 Playvoi.Client/Assets/_Hub/Art/Loading/LoadingCircle.png create mode 100644 Playvoi.Client/Assets/_Hub/Art/Loading/LoadingCircle.png.meta create mode 100644 Playvoi.Client/Assets/_Network/Shared.meta create mode 100644 Playvoi.Client/Assets/_Network/Shared/PacketType.cs create mode 100644 Playvoi.Client/Assets/_Network/Shared/PacketType.cs.meta diff --git a/Playvoi.Client/Assets/_Hub/Art.meta b/Playvoi.Client/Assets/_Hub/Art.meta new file mode 100644 index 0000000..887048c --- /dev/null +++ b/Playvoi.Client/Assets/_Hub/Art.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9a39f91b7561a504382b8358453e2e4c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Playvoi.Client/Assets/_Hub/Art/Loading.meta b/Playvoi.Client/Assets/_Hub/Art/Loading.meta new file mode 100644 index 0000000..c5a019b --- /dev/null +++ b/Playvoi.Client/Assets/_Hub/Art/Loading.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c64cc672e36c72c4681f3beb66a92396 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Playvoi.Client/Assets/_Hub/Art/Loading/LoadingCircle.png b/Playvoi.Client/Assets/_Hub/Art/Loading/LoadingCircle.png new file mode 100644 index 0000000000000000000000000000000000000000..730f6e84fd228faea60e5576d24462ff7c7f7b40 GIT binary patch literal 1438 zcmV;P1!4M$P)xy#Pl|0e|5cE?6gUi}N^!;aQ>hOBA1j zCxO?|3w;hDydQ~ZBEs=x=zR%zA{WkIeh0(3b~QBR7WzNGk4PZVJfFu6#Q__bO6I*= zcpIWQFv;=n$_6O+I5)qbn?AMgNBBAgH}r_12}1Gp!kdXEp)(xBYwwkJp(y}52M&Uc zA%(xxW!(X)=HztZJMbsRM}jAwLsRGu5}FHt0lsLw)lF1V^|q=xVFt8n%1=aYe9?;F zvhf5s9_29}Vh#VGx6R7lDqq!4jHM%xvO(9{!1GQ-6BMOQ)bDt46Q7Tv@or6YS;9l% z3w>dCQ8H*SvAS$~6H&@Uy);(j*j>V@5nsZ-tNXe*iKfByO{UN6IAt-#+N|<<@uhu> z^Fk7VgrP(eQ?;~~mk~a^Gwm$S*8T`GoVSZ!$Z(?+f-GV?u=>v8q1jrx(Pm>XjHM5m zsvF?jr<((-7hU}vWF&1R16qN0XR^gEHfw{0g;TmnHn&rp*RNqrkP#Hzh>krmDKP^J z*YL0CgKKyNW8}LTm)q)k7XfZvJq98r^)%e8)_z zgblA{0j_qkC~X7XgrjZ2-neoeXQNVb^=E>Em!n$AtC=~E_$gcoEUtw2%HjFoJi_kq z$l~sJR|#Bb46H>4I;9<3VA4J=$kiVQvR&H~cq+5_V?nw#UPB~HFH>Uh7egj|n+^Si zAmQC-PR0g$uuOR1ndBRa!tSeZ-fV&!Zn8)|}aa)~ohFT;%r$2#Bz_}N=aOBm}P*`mI>FSKc-D7iA z$BWxAw4T{&&sMlBk0#B;_6=2kB*~P*E|Z0?%|2EV$Xto0u9}1@xe&gZt1UJ~-b{62!K4GqJ&>-?=076$6IIFv!=K31n zO~8+PJlQML6Vp~6o`Vy4!@`ak-o7fE2V8w_DIOs!DDJZYs4UcGAvr*lW(3r$sO zMyg3ZDsVB^??pw2>N6~HAUS;#&d(Km#mC`*_$M56j)^%}lO|ynJ#}4hw{X7tStId% zArwuxv#h+>P4P>|)evxqhiJlW@gm19czuxDNK%|J_7hHIxXK1_?cHA46&e@8iSq8$ z@cV@VF;%Gz3Q`yrvhwp|L=*lNFS5`R(<#xX^*O3cnl>Rd6TXG}%denmlYJeWD@%{+ ze=ngO;ahkE@d5{V-ijA!^J~KtI0|dE6{TI_ML2G!O~u5vU(nAl>f>zgdC%=nIhLKZ sfkT(V%iy9!v{!u%?M@KOI?y9O0GLa}B#8gR6#xJL07*qoM6N<$g0zgG^#A|> literal 0 HcmV?d00001 diff --git a/Playvoi.Client/Assets/_Hub/Art/Loading/LoadingCircle.png.meta b/Playvoi.Client/Assets/_Hub/Art/Loading/LoadingCircle.png.meta new file mode 100644 index 0000000..c437a7f --- /dev/null +++ b/Playvoi.Client/Assets/_Hub/Art/Loading/LoadingCircle.png.meta @@ -0,0 +1,156 @@ +fileFormatVersion: 2 +guid: caf2831230929e249b95f7de25b9c86b +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: iOS + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Playvoi.Client/Assets/_Hub/Scenes/HubScene.unity b/Playvoi.Client/Assets/_Hub/Scenes/HubScene.unity index e6d5c20..c597ea5 100644 --- a/Playvoi.Client/Assets/_Hub/Scenes/HubScene.unity +++ b/Playvoi.Client/Assets/_Hub/Scenes/HubScene.unity @@ -273,6 +273,7 @@ RectTransform: - {fileID: 535676076} - {fileID: 234502802} - {fileID: 489976504} + - {fileID: 925974187} m_Father: {fileID: 1633709628} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -362,6 +363,81 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: c0248d119770466784edaa32f3f8dcfc, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1 &141105217 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 141105218} + - component: {fileID: 141105220} + - component: {fileID: 141105219} + m_Layer: 5 + m_Name: LoadingCircle_1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &141105218 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 141105217} + 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: 925974187} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 62, y: 62} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &141105219 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 141105217} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + 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_Sprite: {fileID: 21300000, guid: caf2831230929e249b95f7de25b9c86b, type: 3} + m_Type: 0 + 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!222 &141105220 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 141105217} + m_CullTransparentMesh: 1 --- !u!1 &166501759 GameObject: m_ObjectHideFlags: 0 @@ -454,6 +530,7 @@ MonoBehaviour: loginButton: {fileID: 489976508} usernameInputField: {fileID: 535676080} passwordInputField: {fileID: 234502806} + loadingUI: {fileID: 925974187} --- !u!1 &184757597 GameObject: m_ObjectHideFlags: 0 @@ -486,6 +563,81 @@ Transform: - {fileID: 140733550} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &218759647 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 218759648} + - component: {fileID: 218759650} + - component: {fileID: 218759649} + m_Layer: 5 + m_Name: LoadingCircle_2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &218759648 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 218759647} + 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: 925974187} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 62, y: 62} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &218759649 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 218759647} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + 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_Sprite: {fileID: 21300000, guid: caf2831230929e249b95f7de25b9c86b, type: 3} + m_Type: 0 + 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!222 &218759650 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 218759647} + m_CullTransparentMesh: 1 --- !u!1 &234502801 GameObject: m_ObjectHideFlags: 0 @@ -1417,6 +1569,81 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: f2fb03888bd1498daadd244b4646b820, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1 &507840270 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 507840271} + - component: {fileID: 507840273} + - component: {fileID: 507840272} + m_Layer: 5 + m_Name: LoadingCircle_3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &507840271 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 507840270} + 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: 925974187} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 62, y: 62} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &507840272 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 507840270} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + 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_Sprite: {fileID: 21300000, guid: caf2831230929e249b95f7de25b9c86b, type: 3} + m_Type: 0 + 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!222 &507840273 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 507840270} + m_CullTransparentMesh: 1 --- !u!1 &535676075 GameObject: m_ObjectHideFlags: 0 @@ -2203,6 +2430,84 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &925974186 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 925974187} + - component: {fileID: 925974189} + - component: {fileID: 925974188} + m_Layer: 5 + m_Name: LoadingPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &925974187 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 925974186} + 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: 141105218} + - {fileID: 218759648} + - {fileID: 507840271} + m_Father: {fileID: 67621592} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -200} + m_SizeDelta: {x: 200, y: 64} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &925974188 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 925974186} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + 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!222 &925974189 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 925974186} + m_CullTransparentMesh: 1 --- !u!1 &1082297273 GameObject: m_ObjectHideFlags: 0 diff --git a/Playvoi.Client/Assets/_Hub/Scripts/UI/LoginUI.cs b/Playvoi.Client/Assets/_Hub/Scripts/UI/LoginUI.cs index 6da60ad..cbbe5e7 100644 --- a/Playvoi.Client/Assets/_Hub/Scripts/UI/LoginUI.cs +++ b/Playvoi.Client/Assets/_Hub/Scripts/UI/LoginUI.cs @@ -1,9 +1,9 @@ using System; +using System.Collections; using System.Text.RegularExpressions; +using _Hub.Scripts.Network; using _Network.Auth; -using TMPro; using UnityEngine; -using UnityEngine.UI; namespace _Hub.Scripts.UI { @@ -16,8 +16,14 @@ namespace _Hub.Scripts.UI [SerializeField] private AuthButton loginButton; [SerializeField] private AuthInputField usernameInputField; [SerializeField] private AuthInputField passwordInputField; + + [SerializeField] private Transform loadingUI; + + private string _username = String.Empty; private string _password = String.Empty; + private Coroutine _loginCoroutine; + private bool _isConnected = false; #endregion @@ -37,6 +43,23 @@ namespace _Hub.Scripts.UI private void OnLoginClick() { + + } + + private IEnumerator LoginRoutine() + { + EnableLoginButton(false); + loadingUI.gameObject.SetActive(true); + NetworkClient.Instance.Connect(); + while (!_isConnected) + { + Debug.Log("WAITING"); + yield return null; + } + + Debug.Log("Connected to server"); + var authRequest = "authRequestObject"; + NetworkClient.Instance.SendServer(authRequest); } private void UpdateUsername(string username) diff --git a/Playvoi.Client/Assets/_Network/Shared.meta b/Playvoi.Client/Assets/_Network/Shared.meta new file mode 100644 index 0000000..e74cef2 --- /dev/null +++ b/Playvoi.Client/Assets/_Network/Shared.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d200259aa868c2148a533bf20b224804 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Playvoi.Client/Assets/_Network/Shared/PacketType.cs b/Playvoi.Client/Assets/_Network/Shared/PacketType.cs new file mode 100644 index 0000000..66ec7b9 --- /dev/null +++ b/Playvoi.Client/Assets/_Network/Shared/PacketType.cs @@ -0,0 +1,13 @@ +namespace _Network.Shared +{ + public enum PacketType : byte + { + #region ClientServer + + #endregion + + #region ServerClient + + #endregion + } +} \ No newline at end of file diff --git a/Playvoi.Client/Assets/_Network/Shared/PacketType.cs.meta b/Playvoi.Client/Assets/_Network/Shared/PacketType.cs.meta new file mode 100644 index 0000000..e8e1136 --- /dev/null +++ b/Playvoi.Client/Assets/_Network/Shared/PacketType.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 635e204dd6e24ac78767259fcfa34e0d +timeCreated: 1768663595 \ No newline at end of file