/// <summary> /// Initialize events after initialize client /// </summary> /// <typeparam name="TAccount">Specified type of account</typeparam> /// <typeparam name="TSession">Specified type of session</typeparam> /// <param name="superNetCoreSocketClient">Instance of client</param> #region InitializeEvents private static void InitializeEvents <TAccount, TSession>( G9SuperNetCoreSocketClient <TAccount, TSession> superNetCoreSocketClient) where TAccount : AClientAccount <TSession>, new() where TSession : AClientSession, new() { // On connected superNetCoreSocketClient.OnConnected += account => EventsQueue.Enqueue(() => AccessToG9Events4Unity.OnConnectedHandler?.Invoke(account)); // On disconnect superNetCoreSocketClient.OnDisconnected += (account, reason) => EventsQueue.Enqueue(() => AccessToG9Events4Unity.OnDisconnectedHandler?.Invoke(account, reason)); // On error superNetCoreSocketClient.OnError += (error, reason) => EventsQueue.Enqueue(() => AccessToG9Events4Unity.OnErrorHandler?.Invoke(error, reason)); // On reconnect superNetCoreSocketClient.OnReconnect += (account, tryReconnectNumber) => EventsQueue.Enqueue( () => AccessToG9Events4Unity.OnReconnectHandler?.Invoke(account, tryReconnectNumber)); // On unhandled command superNetCoreSocketClient.OnUnhandledCommand += (packet, account) => EventsQueue.Enqueue(() => AccessToG9Events4Unity.OnUnhandledCommand?.Invoke(packet, account)); // On unable to connect superNetCoreSocketClient.OnUnableToConnect += () => EventsQueue.Enqueue(() => AccessToG9Events4Unity.OnUnableToConnect?.Invoke()); }
public async Task StartConnection(string ip, int port) { // Initialize client G9SuperNetCoreClient = await G9SuperNetCoreClient4Unity.Initialize <GameAccount, GameSession>(GameAccount); await G9SuperNetCoreClient.StartConnection(ip, port); }
/// <summary> /// Run automatic in first time just one time /// </summary> #region Awake // ReSharper disable once UnusedMember.Local private async Task Awake() { // Run in background Application.runInBackground = true; // Screen set NeverSleep Screen.sleepTimeout = SleepTimeout.NeverSleep; // Make the game run as fast as possible Application.targetFrameRate = 60; // Initialize client G9SuperNetCoreClient = await G9SuperNetCoreClient4Unity.Initialize <ClientAccountSample, ClientSessionSample>(GameAccount); await G9SuperNetCoreClient.StartConnection(); }