Trouble changing rooms
I had posted this question previously, but foolishly made some edits and I think I confused the subject. I have since cleaned up the code and posted it on Stack Overflow for easier viewing.
Any assistance would be appreciated.
0
Answers
-
Oh wow, I discovered if you paste code here from SO it actually looks good. Posting from Visual Studio results in a mess of unformatted text.
using Assets.Programming.Config; using System.Collections; using UnityEngine; using Photon.Pun; using Photon.Realtime; public class NetworkManager : Photon.Pun.MonoBehaviourPunCallbacks { private string RoomName = "Default_Room"; private string LobbyName = "Default_Lobby"; void Start() { PhotonNetwork.NickName = "Logging In..."; PhotonNetwork.ConnectUsingSettings(PhotonNetwork.PhotonServerSettings.AppSettings); } private void LogPhotonDebugInfo(string functionName) { string roomName = RoomName ?? "NULL"; string lobbyName = LobbyName ?? "NULL"; string currentLobbyName = PhotonNetwork.CurrentLobby?.Name ?? "NULL"; string currentRoomName = PhotonNetwork.CurrentRoom?.Name ?? "NULL"; Debug.Log("[PHOTON] " + functionName + "() [RoomName: " + roomName + ", LobbyName: " + lobbyName + ", PhotonNetwork.CurrentLobby.Name: " + currentLobbyName + ", PhotonNetwork.CurrentRoom.Name: " + currentRoomName + "]"); } public override void OnConnectedToMaster() { base.OnConnectedToMaster(); LogPhotonDebugInfo("OnConnectedToMaster"); TypedLobby myLobby = new TypedLobby(LobbyName, LobbyType.Default); PhotonNetwork.JoinLobby(myLobby); } public override void OnJoinedLobby() { base.OnJoinedLobby(); LogPhotonDebugInfo("OnJoinedLobby"); RoomOptions roomOptions = new RoomOptions(); roomOptions.MaxPlayers = 20; PhotonNetwork.JoinOrCreateRoom(RoomName, roomOptions, TypedLobby.Default); } public override void OnLeftLobby() { base.OnLeftLobby(); LogPhotonDebugInfo("OnLeftLobby"); } public override void OnLeftRoom() { base.OnLeftRoom(); LogPhotonDebugInfo("OnLeftRoom"); PhotonNetwork.Disconnect(); } public override void OnDisconnected(DisconnectCause cause) { base.OnDisconnected(cause); LogPhotonDebugInfo("OnDisconnected"); PhotonNetwork.ConnectUsingSettings(PhotonNetwork.PhotonServerSettings.AppSettings); } public override void OnJoinedRoom() { base.OnJoinedRoom(); LogPhotonDebugInfo("OnJoinedRoom"); if (!hasSpawned) { SpawnMyPlayer(); hasSpawned = true; } } public void SwitchRoom(string newRoomName) { if (PhotonNetwork.IsConnectedAndReady) { Debug.Log("[PHOTON] SwitchRoom() [newRoomName: " + newRoomName + "]"); RoomName = newRoomName; PhotonNetwork.LeaveRoom(); } } }
0 -
I have this comment draft that will NOT go away.
using Assets.Programming.Config; using System.Collections; using UnityEngine; using Photon.Pun; using Photon.Realtime; public class NetworkManager : Photon.Pun.MonoBehaviourPunCallbacks { private string RoomName = "Default_Room"; private string LobbyName = "Default_Lobby"; void Start() { PhotonNetwork.NickName = "Logging In..."; PhotonNetwork.ConnectUsingSettings(PhotonNetwork.PhotonServerSettings.AppSettings); } private void LogPhotonDebugInfo(string functionName) { string roomName = RoomName ?? "NULL"; string lobbyName = LobbyName ?? "NULL"; string currentLobbyName = PhotonNetwork.CurrentLobby?.Name ?? "NULL"; string currentRoomName = PhotonNetwork.CurrentRoom?.Name ?? "NULL"; Debug.Log("[PHOTON] " + functionName + "() [RoomName: " + roomName + ", LobbyName: " + lobbyName + ", PhotonNetwork.CurrentLobby.Name: " + currentLobbyName + ", PhotonNetwork.CurrentRoom.Name: " + currentRoomName + "]"); } public override void OnConnectedToMaster() { base.OnConnectedToMaster(); LogPhotonDebugInfo("OnConnectedToMaster"); TypedLobby myLobby = new TypedLobby(LobbyName, LobbyType.Default); PhotonNetwork.JoinLobby(myLobby); } public override void OnJoinedLobby() { base.OnJoinedLobby(); LogPhotonDebugInfo("OnJoinedLobby"); RoomOptions roomOptions = new RoomOptions(); roomOptions.MaxPlayers = 20; PhotonNetwork.JoinOrCreateRoom(RoomName, roomOptions, TypedLobby.Default); } public override void OnLeftLobby() { base.OnLeftLobby(); LogPhotonDebugInfo("OnLeftLobby"); } public override void OnLeftRoom() { base.OnLeftRoom(); LogPhotonDebugInfo("OnLeftRoom"); PhotonNetwork.Disconnect(); } public override void OnDisconnected(DisconnectCause cause) { base.OnDisconnected(cause); LogPhotonDebugInfo("OnDisconnected"); PhotonNetwork.ConnectUsingSettings(PhotonNetwork.PhotonServerSettings.AppSettings); } public override void OnJoinedRoom() { base.OnJoinedRoom(); LogPhotonDebugInfo("OnJoinedRoom"); if (!hasSpawned) { SpawnMyPlayer(); hasSpawned = true; } } public void SwitchRoom(string newRoomName) { if (PhotonNetwork.IsConnectedAndReady) { Debug.Log("[PHOTON] SwitchRoom() [newRoomName: " + newRoomName + "]"); RoomName = newRoomName; PhotonNetwork.LeaveRoom(); } } }
0 -
I did not debug the code but as OnLeftRoom() logs the RoomName as "Default_Room", even after calling SwitchRoom, clearly something else is going on. I doubt it's a PUN issue. No idea, sorry.
-1 -
using Assets.Programming.Config; using System.Collections; using UnityEngine; using Photon.Pun; using Photon.Realtime; public class NetworkManager : Photon.Pun.MonoBehaviourPunCallbacks { private string RoomName = "Default_Room"; private string LobbyName = "Default_Lobby"; void Start() { PhotonNetwork.NickName = "Logging In..."; PhotonNetwork.ConnectUsingSettings(PhotonNetwork.PhotonServerSettings.AppSettings); } private void LogPhotonDebugInfo(string functionName) { string roomName = RoomName ?? "NULL"; string lobbyName = LobbyName ?? "NULL"; string currentLobbyName = PhotonNetwork.CurrentLobby?.Name ?? "NULL"; string currentRoomName = PhotonNetwork.CurrentRoom?.Name ?? "NULL"; Debug.Log("[PHOTON] " + functionName + "() [RoomName: " + roomName + ", LobbyName: " + lobbyName + ", PhotonNetwork.CurrentLobby.Name: " + currentLobbyName + ", PhotonNetwork.CurrentRoom.Name: " + currentRoomName + "]"); } public override void OnConnectedToMaster() { base.OnConnectedToMaster(); LogPhotonDebugInfo("OnConnectedToMaster"); TypedLobby myLobby = new TypedLobby(LobbyName, LobbyType.Default); PhotonNetwork.JoinLobby(myLobby); } public override void OnJoinedLobby() { base.OnJoinedLobby(); LogPhotonDebugInfo("OnJoinedLobby"); RoomOptions roomOptions = new RoomOptions(); roomOptions.MaxPlayers = 20; PhotonNetwork.JoinOrCreateRoom(RoomName, roomOptions, TypedLobby.Default); } public override void OnLeftLobby() { base.OnLeftLobby(); LogPhotonDebugInfo("OnLeftLobby"); } public override void OnLeftRoom() { base.OnLeftRoom(); LogPhotonDebugInfo("OnLeftRoom"); PhotonNetwork.Disconnect(); } public override void OnDisconnected(DisconnectCause cause) { base.OnDisconnected(cause); LogPhotonDebugInfo("OnDisconnected"); PhotonNetwork.ConnectUsingSettings(PhotonNetwork.PhotonServerSettings.AppSettings); } public override void OnJoinedRoom() { base.OnJoinedRoom(); LogPhotonDebugInfo("OnJoinedRoom"); if (!hasSpawned) { SpawnMyPlayer(); hasSpawned = true; } } public void SwitchRoom(string newRoomName) { if (PhotonNetwork.IsConnectedAndReady) { Debug.Log("[PHOTON] SwitchRoom() [newRoomName: " + newRoomName + "]"); RoomName = newRoomName; PhotonNetwork.LeaveRoom(); } } }
0 -
It looks like if you paste from SO, code looks decent?
using Assets.Programming.Config; using System.Collections; using UnityEngine; using Photon.Pun; using Photon.Realtime; public class NetworkManager : Photon.Pun.MonoBehaviourPunCallbacks { private string RoomName = "Default_Room"; private string LobbyName = "Default_Lobby"; void Start() { PhotonNetwork.NickName = "Logging In..."; PhotonNetwork.ConnectUsingSettings(PhotonNetwork.PhotonServerSettings.AppSettings); } private void LogPhotonDebugInfo(string functionName) { string roomName = RoomName ?? "NULL"; string lobbyName = LobbyName ?? "NULL"; string currentLobbyName = PhotonNetwork.CurrentLobby?.Name ?? "NULL"; string currentRoomName = PhotonNetwork.CurrentRoom?.Name ?? "NULL"; Debug.Log("[PHOTON] " + functionName + "() [RoomName: " + roomName + ", LobbyName: " + lobbyName + ", PhotonNetwork.CurrentLobby.Name: " + currentLobbyName + ", PhotonNetwork.CurrentRoom.Name: " + currentRoomName + "]"); } public override void OnConnectedToMaster() { base.OnConnectedToMaster(); LogPhotonDebugInfo("OnConnectedToMaster"); TypedLobby myLobby = new TypedLobby(LobbyName, LobbyType.Default); PhotonNetwork.JoinLobby(myLobby); } public override void OnJoinedLobby() { base.OnJoinedLobby(); LogPhotonDebugInfo("OnJoinedLobby"); RoomOptions roomOptions = new RoomOptions(); roomOptions.MaxPlayers = 20; PhotonNetwork.JoinOrCreateRoom(RoomName, roomOptions, TypedLobby.Default); } public override void OnLeftLobby() { base.OnLeftLobby(); LogPhotonDebugInfo("OnLeftLobby"); } public override void OnLeftRoom() { base.OnLeftRoom(); LogPhotonDebugInfo("OnLeftRoom"); PhotonNetwork.Disconnect(); } public override void OnDisconnected(DisconnectCause cause) { base.OnDisconnected(cause); LogPhotonDebugInfo("OnDisconnected"); PhotonNetwork.ConnectUsingSettings(PhotonNetwork.PhotonServerSettings.AppSettings); } public override void OnJoinedRoom() { base.OnJoinedRoom(); LogPhotonDebugInfo("OnJoinedRoom"); if (!hasSpawned) { SpawnMyPlayer(); hasSpawned = true; } } public void SwitchRoom(string newRoomName) { if (PhotonNetwork.IsConnectedAndReady) { Debug.Log("[PHOTON] SwitchRoom() [newRoomName: " + newRoomName + "]"); RoomName = newRoomName; PhotonNetwork.LeaveRoom(); } } }
0