From 404c4acd3a05f6b71313e4e2d4e5da451959aa89 Mon Sep 17 00:00:00 2001 From: Jordan Orelli Date: Tue, 25 Feb 2020 06:25:47 -0600 Subject: [PATCH] players login now --- Assets/LoginInfo.asset | 7 ++- Assets/Prefabs/Welcome Hud.prefab | 81 +++++++++++++++++++++++++++++- Assets/Scripts/LoginInfo.cs | 10 ++++ Assets/Scripts/MainMenu.cs | 17 ++++++- Assets/Scripts/Networking.cs | 19 +++++++ blender/level-one-shell.blend | Bin 571868 -> 571868 bytes 6 files changed, 129 insertions(+), 5 deletions(-) diff --git a/Assets/LoginInfo.asset b/Assets/LoginInfo.asset index 052d4ee..e9fa0b9 100644 --- a/Assets/LoginInfo.asset +++ b/Assets/LoginInfo.asset @@ -12,6 +12,9 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: fb331b678c613734fa2ba6013e9cd499, type: 3} m_Name: LoginInfo m_EditorClassIdentifier: - playerName: DefaultPlayerName - password: defaultPassword + playerName: jordan + password: fartsock startPosition: {x: 0, y: 10, z: 0} + sentLogin: 0 + isLoggedIn: 1 + loginFailed: 0 diff --git a/Assets/Prefabs/Welcome Hud.prefab b/Assets/Prefabs/Welcome Hud.prefab index 1e91058..44f2430 100644 --- a/Assets/Prefabs/Welcome Hud.prefab +++ b/Assets/Prefabs/Welcome Hud.prefab @@ -1,5 +1,82 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1 &551004617 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 551004618} + - component: {fileID: 551004620} + - component: {fileID: 551004619} + m_Layer: 5 + m_Name: Error Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &551004618 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 551004617} + 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_Children: [] + m_Father: {fileID: 1069633146321919518} + m_RootOrder: 4 + 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: -132} + m_SizeDelta: {x: 400, y: 80} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &551004620 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 551004617} + m_CullTransparentMesh: 0 +--- !u!114 &551004619 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 551004617} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 0, b: 0.12598467, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 27 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Error Text Here --- !u!1 &1069633144504421482 GameObject: m_ObjectHideFlags: 0 @@ -613,6 +690,7 @@ RectTransform: - {fileID: 1069633144627678396} - {fileID: 1069633145445280618} - {fileID: 1069633146489083133} + - {fileID: 551004618} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -697,6 +775,7 @@ MonoBehaviour: networking: {fileID: 11400000, guid: bb2274d4e981ac14fb9a2e043d04e95f, type: 2} usernameField: {fileID: 1069633144627678397} passwordField: {fileID: 1069633145445280619} + errorText: {fileID: 551004619} --- !u!1 &1069633146489083132 GameObject: m_ObjectHideFlags: 0 @@ -733,7 +812,7 @@ RectTransform: 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: -144} + m_AnchoredPosition: {x: 0, y: -203} m_SizeDelta: {x: 160, y: 30} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &1069633146489083120 diff --git a/Assets/Scripts/LoginInfo.cs b/Assets/Scripts/LoginInfo.cs index 94bc957..d7b7703 100644 --- a/Assets/Scripts/LoginInfo.cs +++ b/Assets/Scripts/LoginInfo.cs @@ -7,4 +7,14 @@ public class LoginInfo : ScriptableObject { public string playerName; public string password; public Vector3 startPosition; + + // sentLogin is set true when we send the login, and set back to false when + // we receive the result + public bool sentLogin; + + // isLoggedIn is set to true when we receive a successful login attempt + public bool isLoggedIn; + + // loginFailed is set to true when we fail a login + public string loginError; } diff --git a/Assets/Scripts/MainMenu.cs b/Assets/Scripts/MainMenu.cs index 1002670..c18627b 100644 --- a/Assets/Scripts/MainMenu.cs +++ b/Assets/Scripts/MainMenu.cs @@ -10,15 +10,29 @@ public class MainMenu : MonoBehaviour public Networking networking; public InputField usernameField; public InputField passwordField; + public Text errorText; // Start is called before the first frame update void Start() { + loginInfo.isLoggedIn = false; + loginInfo.sentLogin = false; networking.Connect(); } // Update is called once per frame void Update() { - + networking.CheckForMessages(); + usernameField.interactable = !loginInfo.sentLogin; + passwordField.interactable = !loginInfo.sentLogin; + if (loginInfo.loginError == "") { + errorText.gameObject.SetActive(false); + } else { + errorText.text = loginInfo.loginError; + errorText.gameObject.SetActive(true); + } + if (loginInfo.isLoggedIn) { + SceneManager.LoadScene("MainLevel"); + } } public void Login() { @@ -32,6 +46,5 @@ public class MainMenu : MonoBehaviour loginInfo.playerName = username; loginInfo.password = password; networking.SendLogin(); - SceneManager.LoadScene("MainLevel"); } } diff --git a/Assets/Scripts/Networking.cs b/Assets/Scripts/Networking.cs index 0a35fa2..98fafdf 100644 --- a/Assets/Scripts/Networking.cs +++ b/Assets/Scripts/Networking.cs @@ -78,6 +78,8 @@ public class Networking : ScriptableObject { login.cmd = "login"; login.username = loginInfo.playerName; login.password = loginInfo.password; + loginInfo.sentLogin = true; + loginInfo.loginError = ""; string msg = JsonUtility.ToJson(login); ArraySegment buf = new ArraySegment(Encoding.UTF8.GetBytes(msg)); sock.SendAsync(buf, WebSocketMessageType.Text, true, CancellationToken.None); @@ -133,6 +135,18 @@ public class Networking : ScriptableObject { } break; + case "login-result": + Debug.LogFormat("received login result: {0}", parts[1]); + loginInfo.sentLogin = false; + LoginResult login = JsonUtility.FromJson(parts[1]); + if (login.passed) { + loginInfo.isLoggedIn = true; + } else { + loginInfo.loginError = login.error; + Debug.LogErrorFormat("failed login: {0}", login.error); + } + break; + case "tick": break; @@ -178,4 +192,9 @@ public class Networking : ScriptableObject { public string username; public string password; } + + private struct LoginResult { + public bool passed; + public string error; + } } diff --git a/blender/level-one-shell.blend b/blender/level-one-shell.blend index d36dd14bb66155409a49359b2a1cec3910fb10c8..c597f7b7bfc374acc9f76fc28cd200def72d31c2 100644 GIT binary patch delta 872 zcmYLHUr19?7{BN2cqqlI3uM^fb`IhZsIAxxy+5p}izq{<{x8 z=tF&#A$v*oP*jjROhVdTk_tjHl90$h#7YcNlhH$U&b`wv9KOTv_x--#cfRk=ZCq8y*N<*Iv~4F(7ay5q_kN>(s&;H8 zL~=T?m4I+DE@fVX6=cht8+#$}>D71=y6Taa=qE^uMKKN{oAazmiU>}Ey`=dxC))`Q zU^V?CZoEO?h{Jn|n@GBfb50r0s@9q-rrX>X=qbkgnPWHiQk^Z?axG(Uy&g4@=4!6! za&Rkk&SP>snw)l&b0>>%6Ux;RhEYaiJ$vvLvd%4;(~B)IUcDTtHNLF4%@kW>ys&tc z;(WEnre2 zLdeaBl0LSok6QA+M*^6D;7rEN9s401X!qK`~#otXtsgC{--H7q&7=`}6JFE>nCS z7-oK=!w`K;V_2zW7oO1Z1LCs&jusVS-4518dTnPY!sewcNn%KYLyMFREy})6{{T(` BHP`?E delta 904 zcmYLHT}V_x6rP#A&b?jN$XZQB%b&$v5JD_SP;kW+E`qRu#RjqXAhm)<^bi*!-Oax( ze8`|iu!ns~_8}?oXHp_sL0lxLD9Au5#Y7OqR*;Ji)|@-54II9?=R4F2P@?pW{$gad`7-@(?3biVz|h6M%w~Wpk`r#g~|$V()2V zp==Jqzzt|D@E(d4d=eq?WgoMtah!ctah`st&O^-Bp~_#YxbqqbFY=-gzWc(N2}OyC zomoD5fCs34dDYghty^Wig`|Z0G10Iyc>m8N)Clj-B-w5Q_AB1Obdtvj>B3I4MUsH5 zKp}#R2(n!v9VFZPd&Vvp(>eP@NwYI15}{P0NlxVEew8G$^;n%$Hh;37LUN9~&VX>@ zhfD{|2=|HFcU&Mm8j`|*l1%jqvO1qM;}e~;wv5%ud(M)5tXpeR*WBQuex;bHRc04N zkFvdwM7C8#7F6AHU}vX12Yj)dc(5*Gt*b||T1>?H+|WktElC2(Hnv2MGnK%-^-B(r znI5s5#AA{8!9zA2BfioLaa15)OhYQlL2!oyFX*iqc?nxu4$6FqL+L6a%ppt>mc`Rm z^j@2*w&uz>1X~rl{nFZl%_RIRZl^`BPXUvf)#kxdoEz+(wkI=+{@RFGw4XMx-3T>U zdzAXL)I~|KcpnXbKga?P>8@tfXZ&js+QA}Gs<1bGv|Tf*{`-B$em9Tw(=c`j8MZw@ zyA|k!-58`DuI0%kTiM^(*4ULRx)u!oHb^763Q#;yqsAQU*BI3tq8GkBMh8yi9I3n) z!w~jm2UoE8E1Doy1#g+4