光子2无法加入随机房间

时间:2019-03-14 18:08:38

标签: unity3d photon

我是Networking的新手,自己找不到问题。 我为自己的游戏制作了一个配对系统,并且效果很好。 但是在我的游戏中进行了一些更改之后,它停止了工作。

如果没有房间,它将创建一个房间。否则加入一个随机房间。 但它总是创建一个新房间。没有错误等。

这是应该执行的脚本。

编辑:

将其分解为以下脚本:

using Photon.Pun;
using Photon.Realtime;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class PhotonLobby2 : MonoBehaviourPunCallbacks
{
    public static PhotonLobby2 lobby;


    public GameObject battlebutton;

    private void Awake()
    {
        lobby = this;               // create singleton
    }

    void Start()
    {
        PhotonNetwork.ConnectUsingSettings();
    }

    public override void OnConnectedToMaster()
    {
        Debug.Log("connected to masterserver");
        PhotonNetwork.AutomaticallySyncScene = true;
        battlebutton.SetActive(true);
    }

    public void OnBattleButtonClicked()
    {
        PhotonNetwork.JoinRandomRoom();
    }

    public override void OnJoinRandomFailed(short returnCode, string message)
    {
        Debug.Log(message + returnCode);
        Debug.Log(" failed to join random game");
        CreateRoom();
    }

    void CreateRoom()
    {

        PhotonNetwork.CreateRoom("Room");

    }

    public override void OnCreatedRoom()
    {
        Debug.Log("Created Room");
        base.OnCreatedRoom();
    }

    public override void OnPlayerEnteredRoom(Player newPlayer)
    {
        Debug.Log("Entered");
        base.OnPlayerEnteredRoom(newPlayer);
    }
}

调试说:未找到匹配项32760

2 个答案:

答案 0 :(得分:0)

我通过检查第一个玩家创建的房间属性来解决此问题。 有一个名为“ IsOpen”的Room变量。如果为假,则第二个玩家无法加入同一房间。我只是将其设置为true,现在它完美地加入了同一个房间。

答案 1 :(得分:0)

这是因为两个玩家在不同区域加入了比赛...您可以在光子服务器设置中强制执行此操作用一个特定的服务器区域填充开发区域和固定区域您。使属性“确保名称服务”也已选中