创建私有 "rooms"?
Creating private "rooms"?
我正在尝试了解如何为 MasterServer
上的各个房间设置密码。 hostData
上有一个方法 passwordProtected
由 MasterServer
返回,但我不知道如何设置。
我可以在注册服务器时使用 comment
或 gamename
游戏,因为无论如何我都不会使用它们,但感觉不对。
如果无法为单个房间设置密码,那么我该如何为想要独处的人创建私人房间?
设置密码
密码不会发送到主服务器,密码是使用 Network.incomingPassword
属性.
在游戏服务器本地设置的
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour {
void LaunchServer() {
Network.incomingPassword = "HolyMoly";
bool useNat = !Network.HavePublicAddress();
Network.InitializeServer(32, 25000, useNat);
}
}
然后客户端连接时,在Network.connect
方法中传入密码。有关更多与网络相关的内容,请参阅 Network
class。它有很好的记录。
在私人房间...
请注意,在一台服务器上拥有多个 "room" 将不会很好地工作。您的客户端和服务器在连接时必须在同一场景中,否则会发生不好的事情。这里的想法是您有一个或多个 "hosts" 创建他们的私人房间。每个房间都在主服务器上单独注册。它们都是相同的游戏代码,但它们是人们可以连接的独立服务器。此结构还允许您使用内置的 Network.incomingPassword
字段对您的房间进行密码保护。
我正在尝试了解如何为 MasterServer
上的各个房间设置密码。 hostData
上有一个方法 passwordProtected
由 MasterServer
返回,但我不知道如何设置。
我可以在注册服务器时使用 comment
或 gamename
游戏,因为无论如何我都不会使用它们,但感觉不对。
如果无法为单个房间设置密码,那么我该如何为想要独处的人创建私人房间?
设置密码
密码不会发送到主服务器,密码是使用 Network.incomingPassword
属性.
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour {
void LaunchServer() {
Network.incomingPassword = "HolyMoly";
bool useNat = !Network.HavePublicAddress();
Network.InitializeServer(32, 25000, useNat);
}
}
然后客户端连接时,在Network.connect
方法中传入密码。有关更多与网络相关的内容,请参阅 Network
class。它有很好的记录。
在私人房间...
请注意,在一台服务器上拥有多个 "room" 将不会很好地工作。您的客户端和服务器在连接时必须在同一场景中,否则会发生不好的事情。这里的想法是您有一个或多个 "hosts" 创建他们的私人房间。每个房间都在主服务器上单独注册。它们都是相同的游戏代码,但它们是人们可以连接的独立服务器。此结构还允许您使用内置的 Network.incomingPassword
字段对您的房间进行密码保护。