Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using GalaxyCoreCommon.InternalMessages;
- using GalaxyCoreLib;
- using GalaxyCoreLib.Api;
- using GameServerCommon;
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.SceneManagement;
- public class NetworkController : MonoBehaviour
- {
- #region SINGLETON
- public static NetworkController Singleton;
- #endregion
- /// <summary>
- /// Ip адрес сервера
- /// </summary>
- public string serverIP = "127.0.0.1";
- /// <summary>
- /// Порт сервера
- /// </summary>
- public int serverPort = 30200;
- /// <summary>
- /// Конфигурация клиента
- /// </summary>
- Config config = new Config();
- private void Awake()
- {
- if (Singleton == null)
- {
- Singleton = this;
- DontDestroyOnLoad(gameObject); // Помечаем объект как неразрушаемый при переходах между сценами
- }
- else
- {
- Destroy(gameObject);
- return;
- }
- config.serverIp = serverIP; // задаем указаный ип
- config.serverPort = serverPort; // задаем указанный порт
- config.app_name = "GameServer"; // должно соответствовать имени сервера
- config.FrameRate = 25; // Устанавливаем сетевой фреймрейт
- GalaxyClientCore.Initialize(config); // инициализируем сетевое ядро
- GalaxyClientCore.unityCalls.Awake(); // прокидываем Awake
- }
- private void Start()
- {
- Debug.Log("NetworkController Start()");
- GalaxyClientCore.unityCalls.Start(); // прокидываем Start
- GalaxyEvents.OnGalaxyDisconnect += GalaxyEvents_OnGalaxyDisconnect;
- GalaxyEvents.OnGalaxyConnect += GalaxyEvents_OnGalaxyConnect;
- GalaxyEvents.OnGalaxyEnterInInstance += OnGalaxyEnterInInstance;
- GalaxyEvents.OnExitInstance += GalaxyEvents_OnExitInstance;
- SceneManager.sceneLoaded += SceneManager_sceneLoaded;
- }
- private void SceneManager_sceneLoaded(Scene scene, LoadSceneMode mode)
- {
- //Debug.Log("OnSceneLoaded: " + scene.name);
- //Debug.Log(mode);
- }
- private void GalaxyEvents_OnExitInstance()
- {
- Player.instanceInfo = null;
- Debug.Log("GalaxyEvents_OnExitInstance");
- if(GalaxyApi.connection.isConnected)
- {
- SceneManager.LoadScene("LobbyScene");
- }
- else
- {
- SceneManager.LoadScene("LoginScene");
- }
- }
- private void OnGalaxyEnterInInstance(GalaxyCoreCommon.InstanceInfo info)
- {
- Player.instanceInfo = info;
- SceneManager.LoadScene("WorldScene");
- }
- private void GalaxyEvents_OnGalaxyConnect(byte[] message)
- {
- MessageConnectApproval messageApproval = MessageConnectApproval.Deserialize<MessageConnectApproval>(message);
- Player.name = messageApproval.name;
- Player.id = messageApproval.id;
- SceneManager.LoadScene("LobbyScene");
- }
- private void GalaxyEvents_OnGalaxyDisconnect()
- {
- Player.name = "Disconnect";
- Player.id = -1;
- Debug.Log(gameObject + " OnGalaxyDisconnect");
- SceneManager.LoadScene("LoginScene");
- }
- private void Update()
- {
- GalaxyClientCore.unityCalls.Update(Time.deltaTime); // Прокидываем update
- }
- private void OnApplicationQuit()
- {
- GalaxyApi.connection.Disconnect(); //Посылаем команду дисконекта при выходе из приложения
- }
- private void OnDisable()
- {
- if (GalaxyApi.connection.isConnected)
- {
- Debug.Log(gameObject + " OnDisable | Disconnect");
- GalaxyApi.connection.Disconnect();//Посылаем команду дисконекта если go был выключен
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement