我正在尝试了解如何在MasterServer
的各个房间设置密码。 passwordProtected
上有一个方法hostData
由MasterServer
返回,但我找不到如何设置方法。
我在注册服务器时可以使用游戏comment
或gamename
,因为我无论如何都不会使用它们,但感觉不对。
如果无法在个别房间设置密码,那么我如何为想要独处的人创建私人空间?
答案 0 :(得分:2)
密码不会发送到主服务器,密码是使用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
课程。它的记录非常清楚。
请注意,在单个服务器上拥有多个“空间”将无法正常工作。连接时,您的客户端和服务器必须位于同一场景中,否则会发生不好的事情。这里的想法是你有一个或多个“主人”创建他们的私人房间。每个房间都在主服务器上单独注册。它们都是相同的游戏代码,但它们是人们可以连接的独立服务器。此结构还允许您使用内置的Network.incomingPassword
字段来密码保护您的房间。