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 0000000..730f6e8 Binary files /dev/null and b/Playvoi.Client/Assets/_Hub/Art/Loading/LoadingCircle.png differ 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