不加入房间||光子双关语

does'nt join the room || Photon Pun

我最近正在使用 Unity3d 和 Photon PUN2 开发我的多人游戏;

我想做一个系统,玩家点击按钮加入房间如果不是avilabe然后创建;

当从 p1 的两个玩家 (parrelSync) 开始游戏时,它只会使房间正常(因为开始时没有房间可用)

形成p2不加入房间

这里是代码

        string roomID = "002";
        string maxPlayers = "10";
        RoomOptions roomOptions = new RoomOptions();
        roomOptions.MaxPlayers = (byte)int.Parse(maxPlayers);
        if(PhotonNetwork.CurrentRoom != null){
            PhotonNetwork.JoinRoom(roomID);
        }else{
            PhotonNetwork.CreateRoom(roomID, roomOptions);
        }
    }

PhotonNetwork.CurrentRoom returns 您当前所在的房间,在您的情况下始终为 null。

而不是检查 PhotonNetwork.CurrentRoom 只需使用 PhotonNetwork.JoinRoom 并重写 OnJoinRoomFailed() 当我们尝试使用 roomID 加入房间时将被调用还不存在,就在里面新建一个房间。

像下面这样的东西会起作用

private string roomID = "002";

private void YourMethod() {
    string maxPlayers = "10";
    RoomOptions roomOptions = new RoomOptions();
    roomOptions.MaxPlayers = (byte) int.Parse(maxPlayers);

    PhotonNetwork.JoinRoom(roomID);
}

public override void OnJoinRoomFailed(short returnCode, string message) {
    PhotonNetwork.CreateRoom(roomID);
}

并覆盖 OnJoinRoomFailed() 确保您的脚本派生自 MonoBehaviourPunCallbacks class