创建私人"房间"?

时间:2015-01-26 14:18:29

标签: c# unity3d multiplayer

我正在尝试了解如何在MasterServer的各个房间设置密码。 passwordProtected上有一个方法hostDataMasterServer返回,但我找不到如何设置方法。

我在注册服务器时可以使用游戏commentgamename,因为我无论如何都不会使用它们,但感觉不对。

如果无法在个别房间设置密码,那么我如何为想要独处的人创建私人空间?

1 个答案:

答案 0 :(得分:2)

设置密码

密码不会发送到主服务器,密码是使用Network.incomingPassword属性在游戏服务器上本地设置的。

Network.InitializeServer

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字段来密码保护您的房间。