Photon 2 无法加入随机房间

Posted

技术标签:

【中文标题】Photon 2 无法加入随机房间【英文标题】:Photon 2 Can´t join random room 【发布时间】:2019-03-14 18:08:38 【问题描述】:

我是网络新手,我自己找不到问题。 我为我的游戏制作了一个匹配系统,它运行良好。 但是在我的游戏中进行了一些更改后,它停止了工作。

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

这里是应该完成工作的脚本。

编辑:

把它分解成这个脚本:

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

【问题讨论】:

尝试通过调试来缩小问题范围。如果您想跟踪您的更改并可能恢复到工作代码库,我还建议使用像 Git 这样的版本控制系统。 现在只用大厅脚本设置了一个全新的场景。调试说没有找到房间。也进行了更改,但仍然无法正常工作 我会精简您的示例,仅显示问题所在以及正确的上下文。请看minimal reproducible example 这就是重点。我不知道问题出在哪里。连接到大师作品。也创造空间。只是找到一个现有的不 编辑了帖子。 【参考方案1】:

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

【讨论】:

【参考方案2】:

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

【讨论】:

以上是关于Photon 2 无法加入随机房间的主要内容,如果未能解决你的问题,请参考以下文章

csharp 连接到Photon Unity Network并加入或创建房间的组件。

Photon matchmaking - 在 Unity 中使用 SQL 大厅加入或创建房间

如何在 Photon Unity 中获取封闭房间的名称?

玩家可以加入多个房间吗?双关语

光子:重新加入房间

Smartfox iOS - 无法加入房间