当我尝试创建房间时,没有任何反应,并且标题中有错误。我该怎么办?
如果可以的话,写出具体应该更换的内容。
完整错误:
创建房间失败。客户端位于 MasterServer 上(必须是 Master Server 才能进行匹配),但尚未准备好进行操作(状态:PeerCreated)。等待回调:OnJoinedLobby 或 OnConnectedToMaster。
UnityEngine.Debug:LogError(对象)
Photon.Pun.PhotonNetwork:CreateRoom(字符串,Photon.Realtime.RoomOptions,Photon.Realtime.TypedLobby,字符串[])(位于Assets / Photon / PhotonUnityNetworking / Code / PhotonNetwork.cs:1782)
MenuManagerScript:CreateRoom ()(位于 Assets/MenuManagerScript.cs:15)
UnityEngine.EventSystems.EventSystem:Update ()(位于 Library/PackageCache/[email protected]/Runtime/EventSystem/EventSystem.cs:385)
完整代码:
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using Photon.Pun;
using Photon.Realtime;
public class MenuManagerScript : MonoBehaviourPunCallbacks
{
public InputField createInput;
public InputField joinInput;
public void CreateRoom() {
RoomOptions roomOptions = new RoomOptions();
roomOptions.MaxPlayers = 4;
PhotonNetwork.CreateRoom(createInput.text, roomOptions);
}
public void JoinRoom() {
PhotonNetwork.JoinRoom(joinInput.text);
}
public override void OnJoinedRoom() {
PhotonNetwork.LoadLevel("Game");
}
}
I take code from this video: https://youtu.be/IfP5ChmhVFk?t=485
这是我的光子网络代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Photon.Pun;
public class NetworkManager : MonoBehaviourPunCallbacks
{
public static NetworkManager instance;
public override void OnConnectedToMaster()
{
Debug.Log("Connected to master server");
CreateRoom("testroom");
}
public override void OnCreatedRoom()
{
Debug.Log("Created room: " + PhotonNetwork.CurrentRoom.Name);
}
void Start()
{
Debug.Log(" started");
PhotonNetwork.ConnectUsingSettings();
}
public void CreateRoom(string roomName)
{
PhotonNetwork.CreateRoom(roomName);
}
public void JoinRoom(string roomName)
{
PhotonNetwork.JoinRoom(roomName);
}
public void ChangeScene(string sceneName)
{
PhotonNetwork.LoadLevel(sceneName);
}
}
您想要在尝试创建或加入任何房间之前进行连接。 PUN 包含一个非常简单的脚本,可以让您轻松进入一个随机房间。查看
ConnectAndJoinRandom
组件。
对我来说,问题是因为加载时默认场景是大厅,您需要在加载之前切换到加载场景,以便它可以正确连接到大厅
基本上只需在玩之前切换到加载场景即可
在编辑器中点击“播放”之前,必须将场景更改为连接到服务器的场景,即具有功能
PhotonNetwork.ConnectUsingSettings()
的场景。
成功连接服务器后,
createRoom()
功能应该可以使用。
几个小时后,我意识到我的代码有一个问题:由于某种原因,当我尝试在大厅中将两个游戏连接在一起时,它出错了,在查看了很多帖子(其中没有任何帮助)后,我意识到我的两个游戏都连接到了不同的区域。这意味着这两个游戏无法连接,因此要解决此问题,您可以转到大厅代码并输入启动函数:PhotonNetwork.ConnectToRegion("your Region")
希望这对某人有帮助