'Unity Photon.Pun Connecting isues When Change Scene

Hello Guys i am working on a small project and I installed the room setup system in the lobby without any problems, and when we set up the room, it directs us to a 2D scene. Everything was exactly what I wanted until now, like the room scene among us. LoadScene("Game"); I added the code and assigned it to the button. When I press the button, the scene changes, but [my status text says connecting but never connected, it's always stuck connecting and therefore players cannot go on stage] I'll share my codes below, can you help me? Network.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using Photon.Pun;
using Photon.Realtime;
public class Network : MonoBehaviourPunCallbacks
{
    public Text StatusText;
    public CameraFollow playerCamera;
    public MasterClient masterClient;

    private void Start()
    {
        StatusText.text = "Connecting";
        PhotonNetwork.NickName = "Player" + Random.Range(0, 5000);
       // CreatePlayerCamera();
    }

    public void GameScene()
    {
        StatusText.text = "Joined " + PhotonNetwork.CurrentRoom.Name;
        PhotonNetwork.LoadLevel("Game");
    }
    private void CreatePlayerCamera()
    {
        playerCamera.target = PhotonNetwork.Instantiate("Player", new Vector3(
            Random.Range(-5, 5),
            Random.Range(-5, 5),
            0), Quaternion.identity).transform;
        if (PhotonNetwork.IsMasterClient)
        {
            masterClient.Initialize();
        }
    } 
    public override void OnConnectedToMaster()
    {
        StatusText.text = "Connected to Master / Joining room";
        PhotonNetwork.JoinOrCreateRoom("GameRoom", new RoomOptions() { MaxPlayers = 4 }, null);
        CreatePlayerCamera();
    }
    public override void OnJoinedRoom ()
    {

        StatusText.text = PhotonNetwork.CurrentRoom.Name;
        playerCamera.target = PhotonNetwork.Instantiate("Player",
             new Vector3(
                 Random.Range(-10, 10),
                 Random.Range(-10, 10),
                 0), Quaternion.identity).transform;
       
    }

}

Lobbynetwork.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Photon.Pun;
using Photon.Realtime;
using UnityEngine.UI;
public class LobbyNetworkManager : MonoBehaviourPunCallbacks
{
    int number;
    int number2;
    public Text su;
    private List<RoomItemUI> _roomList = new List<RoomItemUI> ();
    [SerializeField] private RoomItemUI _roomItemUIPrefab;
    [SerializeField] private Transform _roomListParent;
    [SerializeField] private Text _statusField;
    [SerializeField] private Button _leaveRoomButton;
    [SerializeField] private InputField _roomInput;
    [SerializeField] private InputField _joinInput;
    [SerializeField] private RoomItemUI _playerItemUIPrefab;
    [SerializeField] private Transform _playerListParent;
    private List<RoomItemUI> _playerList = new List<RoomItemUI>();
    private void Start()
    {
  
        Initialize();
        Connect();
    }

    #region PhotonCallbacks
    public override void OnConnectedToMaster()
    {
        Debug.Log("Connected to master server");
        PhotonNetwork.JoinLobby();
    }
    public override void OnRoomListUpdate(List<RoomInfo> roomList)
    {
        UpdateRoomList(roomList);
    }
    public override void OnDisconnected(DisconnectCause cause)
    {
        Debug.Log("Disconnect");
    }
    public override void OnJoinedLobby()
    {
        Debug.Log("Joined Lobby!");
    }
    public override void OnJoinedRoom()
    {
        _statusField.text = "Joined " + PhotonNetwork.CurrentRoom.Name;
        Debug.Log("Joined Room " + PhotonNetwork.CurrentRoom.Name);
        MoveScene();
        // _leaveRoomButton.interactable = true;
        UpdatePlayerList();
    }
    private void MoveScene()
    {
        PhotonNetwork.LoadLevel("Room_Scene");
    }
   
    public override void OnLeftRoom()
    {
        _statusField.text = "Lobby";
        Debug.Log("Left Room");
        _leaveRoomButton.interactable = false;
        UpdatePlayerList();
    }
    public override void OnPlayerEnteredRoom(Player newPlayer)
    {
        UpdatePlayerList();
    }
    public override void OnPlayerLeftRoom(Player otherPlayer)
    {
        UpdatePlayerList();
    }
    #endregion

    private void Initialize()
    {
        _leaveRoomButton.interactable = false;
    }
    private void Connect()
    {
        PhotonNetwork.NickName = "Player" + Random.Range(0, 5000);
        PhotonNetwork.ConnectUsingSettings();
        PhotonNetwork.AutomaticallySyncScene = true;
    }
    private void UpdateRoomList(List<RoomInfo> roomList)
    {
        //Clear the current list of rooms
         for (int i =0; i < _roomList.Count; i++)
        {
           Destroy(_roomList[i].gameObject);
        }
         _roomList.Clear();
        // Generate a new list with the updated info
        for (int i = 0; i < roomList.Count; i++)
        {
            //skip empty rooms
            if(roomList[i].PlayerCount == 0) { continue; }
            RoomItemUI newRoomItem = Instantiate(_roomItemUIPrefab);
            newRoomItem.LobbyNetworkParent = this;
            newRoomItem.SetName(roomList[i].Name);
            newRoomItem.transform.SetParent(_roomListParent);
            _roomList.Add(newRoomItem);
        }
    }
    private void UpdatePlayerList()
    {
        //Clear the current player list
        //clear current list of room 
        for (int i = 0; i < _playerList.Count; i++)
        {
            Destroy(_playerList[i].gameObject);
        }
        _playerList.Clear();
        if(PhotonNetwork.CurrentRoom == null) { return; }
        //Generate a new list of players 
        foreach(KeyValuePair<int, Player> player in PhotonNetwork.CurrentRoom.Players)
        {
            RoomItemUI newPlayerItem = Instantiate(_playerItemUIPrefab);
            newPlayerItem.transform.SetParent(_playerListParent);
            newPlayerItem.SetName(player.Value.NickName);
            _playerList.Add(newPlayerItem);
        }
    }
 public void JoinRoom(string roomName)
    {
        PhotonNetwork.JoinRoom(roomName);
    }
    public void CreateRoom()
    {
        number = Random.Range(1000, 9000);
        number2 = Random.Range(100, 800);
        PhotonNetwork.CreateRoom("Su" + number + "TR" + number2, new RoomOptions() { MaxPlayers = 4 }, null);
        /* if (string.IsNullOrEmpty(_roomInput.text) == false)
         {
             PhotonNetwork.CreateRoom(_roomInput.text + number, new RoomOptions() { MaxPlayers = 4 }, null);
         } */
        MoveScene();
    }
    public void JoinWitchCode ()
    {
        PhotonNetwork.JoinRoom(_joinInput.text);
    }
    public void LeaveRoom()
    {
        PhotonNetwork.LeaveRoom();
    }
}

Check my video Youtube



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source