Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using ExitGames.Client.Photon;
- using Photon.Pun;
- using Photon.Realtime;
- using System;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.SceneManagement;
- using UnityEngine.UI;
- public class NetworkManager : MonoBehaviourPunCallbacks
- {
- string region = "Temp";
- void Awake()
- {
- DontDestroyOnLoad(this);
- PhotonNetwork.AutomaticallySyncScene = true;
- PhotonNetwork.SendRate = 30;
- PhotonNetwork.SerializationRate = 20;
- if (MainMenu.getInstance != null)
- MainMenu.getInstance.SetNicknameText(PhotonNetwork.NickName);
- SceneManager.sceneLoaded += OnSceneFinishedLoaded;
- }
- public override void OnConnectedToMaster()
- {
- Debug.Log("Connected to master");
- PhotonNetwork.LoadLevel("Lobby");
- PhotonNetwork.JoinLobby(new TypedLobby(region, LobbyType.SqlLobby));
- }
- public override void OnRoomListUpdate(List<RoomInfo> roomList)
- {
- Debug.Log("room list updated");
- if (Lobby.getInstance != null)
- Lobby.getInstance.UpdateRoomList(roomList);
- }
- public override void OnLeftLobby()
- {
- }
- public override void OnCreateRoomFailed(short returnCode, string message)
- {
- Debug.Log("Error on creating room: " + message);
- }
- public override void OnJoinRoomFailed(short returnCode, string message)
- {
- Debug.Log("Error on joining room:" + message);
- }
- public override void OnJoinRandomFailed(short returnCode, string message)
- {
- string roomName = "Room " + UnityEngine.Random.Range(1000, 10000);
- RoomOptions options = new RoomOptions { MaxPlayers = 8 };
- PhotonNetwork.CreateRoom(roomName, options, null);
- }
- public override void OnJoinedRoom()
- {
- PhotonNetwork.LoadLevel("Room");
- }
- public override void OnPlayerEnteredRoom(Photon.Realtime.Player newPlayer)
- {
- GameManager.getInstance.SpawnPlayer(newPlayer.ActorNumber, newPlayer.NickName, false);
- Debug.Log("player entered!");
- }
- public override void OnPlayerLeftRoom(Photon.Realtime.Player otherPlayer)
- {
- GameManager.getInstance.PlayerLeft(otherPlayer.ActorNumber);
- }
- public override void OnLeftRoom()
- {
- }
- void OnSceneFinishedLoaded(Scene scene, LoadSceneMode mode)
- {
- if (scene.name == "Room")
- GameManager.getInstance.SpawnPlayer(0, PhotonNetwork.NickName, true);
- }
- public void Connect(string region)
- {
- PhotonNetwork.PhotonServerSettings.AppSettings.FixedRegion = region;
- if (!PhotonNetwork.IsConnected)
- PhotonNetwork.ConnectUsingSettings();
- this.region = region;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement