📜  加入或创建 Room() 光子 - C# (1)

📅  最后修改于: 2023-12-03 15:22:46.143000             🧑  作者: Mango

加入或创建 Room() 光子 - C#

在使用 Photon Unity Networking (PUN) 的 Unity 项目中,可以使用 PhotonNetwork 类来加入或创建一个 Room(房间)。

加入一个 Room

您可以通过使用 PhotonNetwork.JoinRoom 方法来加入一个已经存在的 Room。该方法接受一个字符串参数,该参数是 Room 的名称。参考代码如下:

// 加入名为 "MyRoom" 的 Room
PhotonNetwork.JoinRoom("MyRoom");

如果成功加入 Room,则会调用一个回调方法 OnJoinedRoom()。在该方法中,您可以执行 Room 加入后的操作。例如,将玩家放置在正确的位置等。参考代码如下:

// 如果成功加入 Room,则会调用该方法
public void OnJoinedRoom()
{
    // 在这里执行 Room 加入后的操作
    // ...
}
创建一个 Room

如果不存在您想加入的 Room,则可以使用 PhotonNetwork.CreateRoom 方法来创建一个新的 Room。该方法接受一个字符串参数,该参数是新 Room 的名称,以及一个 RoomOptions 对象,该对象包含有关 Room 的其他信息,例如 Room 的最大玩家数,是否可见等。

参考代码如下:

// 创建一个名为 "MyRoom",最大玩家数为 4,可见性为可见的 Room
RoomOptions options = new RoomOptions { MaxPlayers = 4, IsVisible = true };
PhotonNetwork.CreateRoom("MyRoom", options);

如果成功创建 Room,则会调用一个回调方法 OnCreatedRoom()。在该方法中,您可以执行 Room 创建后的操作。例如,将玩家放置在正确的位置等。参考代码如下:

// 如果成功创建新 Room,则会调用该方法
public void OnCreatedRoom()
{
    // 在这里执行 Room 创建后的操作
    // ...
}
其他注意事项
  • 加入一个 Room 时,如果 Room 已满或不存在,则会调用一个回调方法 OnJoinRoomFailed()。您可以在此回调方法中执行错误处理的代码。参考代码如下:
// 当加入 Room 失败时调用该方法
public void OnJoinRoomFailed()
{
    // 在这里执行加入 Room 失败的处理代码
    // ...
}
  • 当您成功连接到 Photon 服务器时,会调用一个回调方法 OnConnectedToMaster()。在该方法中,您可以执行连接成功后的操作。例如,加入 Lobby 等。参考代码如下:
// 当连接到 Photon 服务器时调用该方法
public void OnConnectedToMaster()
{
    // 在这里执行连接成功后的操作
    // ...
}