Created
February 17, 2019 15:24
-
-
Save insthync/1d1360996b6c105a3285a2662159f87c to your computer and use it in GitHub Desktop.
EnterMMOServer
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System.Collections; | |
using System.Collections.Generic; | |
using UnityEngine; | |
using UnityEngine.Events; | |
using LiteNetLib; | |
using LiteNetLibManager; | |
namespace MultiplayerARPG.MMO | |
{ | |
public class EnterMMOServer : MonoBehviour | |
{ | |
public string serverAddress; | |
public int serverPort; | |
public UnityEvent onConnectedToServer; | |
public UnityEvent onValidateAccessTokenSuccess; | |
private void OnEnable() | |
{ | |
MMOClientInstance.Singleton.onCentralClientConnected += OnCentralServerConnected; | |
MMOClientInstance.Singleton.onCentralClientDisconnected += OnCentralServerDisconnected; | |
if (MMOClientInstance.Singleton.IsConnectedToCentralServer()) | |
OnCentralServerConnected(); | |
else if (!string.IsNullOrEmpty(serverAddress) && serverPort > 0) | |
MMOClientInstance.Singleton.StartCentralClient(serverAddress, serverPort); | |
} | |
private void OnDisable() | |
{ | |
MMOClientInstance.Singleton.onCentralClientConnected -= OnCentralServerConnected; | |
MMOClientInstance.Singleton.onCentralClientDisconnected -= OnCentralServerDisconnected; | |
} | |
public void OnCentralServerConnected() | |
{ | |
ClearHistory(); | |
onConnectedToServer.Invoke(); | |
if (!string.IsNullOrEmpty(MMOClientInstance.UserId) && !string.IsNullOrEmpty(MMOClientInstance.AccessToken)) | |
MMOClientInstance.Singleton.RequestValidateAccessToken(MMOClientInstance.UserId, MMOClientInstance.AccessToken, OnValidateAccessToken); | |
} | |
public void OnCentralServerDisconnected(DisconnectInfo disconnectInfo) | |
{ | |
UISceneGlobal.Singleton.ShowDisconnectDialog(disconnectInfo); | |
} | |
public void OnClickLogout() | |
{ | |
MMOClientInstance.Singleton.RequestUserLogout(OnUserLogout); | |
} | |
public void OnClickDisconnect() | |
{ | |
MMOClientInstance.Singleton.ClearClientData(); | |
MMOClientInstance.Singleton.StopCentralClient(); | |
} | |
public void OnClickExit() | |
{ | |
Application.Quit(); | |
} | |
private void OnUserLogout(AckResponseCode responseCode, BaseAckMessage messageData) | |
{ | |
ClearHistory(); | |
} | |
private void OnValidateAccessToken(AckResponseCode responseCode, BaseAckMessage messageData) | |
{ | |
if (responseCode == AckResponseCode.Success) | |
{ | |
if (onValidateAccessTokenSuccess != null) | |
onValidateAccessTokenSuccess.Invoke(); | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment