|
|
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.Networking;
-
- namespace Networking.Client
- {
-
- public class ClientManager : MonoBehaviour
- {
- #region Inspector Fields
-
- [Header("Connection Settings")]
-
- [SerializeField]
- [Tooltip("Server Address to Connect to")]
- private string ServerIP;
-
- [SerializeField]
- [Tooltip("Port to connect on")]
- private int Port;
-
- [SerializeField]
- [Tooltip("Try and connect on Play")]
- private bool StartClientOnAwake;
-
- [Header("Player Settings")]
- [SerializeField]
- [Tooltip("Player Name")]
- private string DisplayName;
-
- [SerializeField]
- [Tooltip("Player Color")]
- private Color PlayerColor;
-
- [Header("References")]
- [SerializeField]
- [Tooltip("Reference to actual Client")]
- protected ClientObject Client;
-
- #endregion Inspector Fields
-
- #region Private variables
-
- #endregion Private variables
-
- // Start is called before the first frame update
- private void Awake()
- {
- if (StartClientOnAwake)
- StartClient(ServerIP, Port);
- }
-
- public void OnEnable()
- {
- if (Client.isConnected)
- RegisterHandlers();
- }
- public void OnDisable()
- {
- Client.client.UnregisterHandler(LoginProtocols.RequestLoginDetails);
- }
-
-
-
- public void StartClient(string ipAddress, int port)
- {
- Client.Connect(ipAddress, port);
-
- RegisterHandlers();
- }
-
- public void RegisterHandlers()
- {
- Client.client.RegisterHandler(LoginProtocols.RequestLoginDetails, LoginRecieved);
- Client.client.RegisterHandler(LoginProtocols.LoginSuccess, LoginSucess);
- Client.client.RegisterHandler(LoginProtocols.LoginFail, LoginFail);
- }
-
- public void LoginRecieved(NetworkMessage msg)
- {
- Debug.Log("Connected to Server. Sending login details");
- Client.client.Send(LoginProtocols.SendingLoginDetails, new LoginProtocols.LoginMsg(DisplayName, Color.white));
- }
-
- public void LoginSucess(NetworkMessage msg)
- {
- Debug.Log("Log in successful");
- Client.UpdatePlayerDetails(DisplayName, PlayerColor);
- }
-
- public void LoginFail(NetworkMessage msg)
- {
- Debug.Log("Log in failed");
- Client.Stop();
- }
-
- }
- }
|