Unity3d Unity多人游戏:独立客户端

Unity3d Unity多人游戏:独立客户端,unity3d,networking,multiplayer,Unity3d,Networking,Multiplayer,我正在研究Unity多人游戏支持。从所有的文档来看,游戏的主要模式似乎是既能充当服务器又能充当客户端,两者使用相同的二进制文件 有没有可能制作一个客户端和服务器是两个不同二进制文件的游戏:客户端更轻量级,只做客户端部分,而服务器处理开放世界/游戏/状态等繁重任务 作为一个简化的例子,想象一个由角色组成的巨大世界,客户端是一个移动应用程序,只需要显示他们的健康/状态并呈现他们的化身。在服务器上,这些角色在大型环境中过着复杂的生活。您可以使用类似SmartFoxServer(支持unity3d)的东

我正在研究Unity多人游戏支持。从所有的文档来看,游戏的主要模式似乎是既能充当服务器又能充当客户端,两者使用相同的二进制文件

有没有可能制作一个客户端和服务器是两个不同二进制文件的游戏:客户端更轻量级,只做客户端部分,而服务器处理开放世界/游戏/状态等繁重任务


作为一个简化的例子,想象一个由角色组成的巨大世界,客户端是一个移动应用程序,只需要显示他们的健康/状态并呈现他们的化身。在服务器上,这些角色在大型环境中过着复杂的生活。

您可以使用类似SmartFoxServer(支持unity3d)的东西来执行服务器操作,完全独立于客户端逻辑。这将是客户端的C#Unity和SmartFoxServer的Java。在服务器中配置扩展、管理会议室、大厅、用户事件、聊天等并在客户端获取事件非常容易。您可以构建一个完整的MMO系统并在移动设备上运行。

您可以使用类似SmartFoxServer(支持unity3d)的东西来进行完全独立于客户端逻辑的服务器操作。这将是客户端的C#Unity和SmartFoxServer的Java。在服务器中配置扩展、管理会议室、大厅、用户事件、聊天等并在客户端获取事件非常容易。你可以构建一个完整的MMO系统,并在手机上运行。

所以我相信我找到了一种方法,至少它对我有用。 我需要的是可以使用NetworkClient和NetworkServer类。现在我有两个独立的项目,服务器和客户端。 服务器有一个脚本,该脚本大致如下:

public class Server : MonoBehaviour {
public Text text;
public class HelloMessage : MessageBase
{
    public string helloText;
}

void Start () {
    NetworkServer.Listen(4444);
    NetworkServer.RegisterHandler(333, onHelloMessage);

}

public void onHelloMessage(NetworkMessage msg)
{
    text.text = msg.ReadMessage<HelloMessage>().helloText;
}
}
}

现在,在服务器端,我们可以将
文本
连接到标签,在客户端
发送网络消息
连接到按钮,我们可以从客户端发送消息以显示在服务器上


现在只需要定义一个协议,我们就可以开始了。

所以我相信我找到了一种方法,至少它对我是有效的。 我需要的是可以使用NetworkClient和NetworkServer类。现在我有两个独立的项目,服务器和客户端。 服务器有一个脚本,该脚本大致如下:

public class Server : MonoBehaviour {
public Text text;
public class HelloMessage : MessageBase
{
    public string helloText;
}

void Start () {
    NetworkServer.Listen(4444);
    NetworkServer.RegisterHandler(333, onHelloMessage);

}

public void onHelloMessage(NetworkMessage msg)
{
    text.text = msg.ReadMessage<HelloMessage>().helloText;
}
}
}

现在,在服务器端,我们可以将
文本
连接到标签,在客户端
发送网络消息
连接到按钮,我们可以从客户端发送消息以显示在服务器上


现在只需要定义一个协议,我们就可以开始了。

是的,你甚至可以使用UNET(Unity多人游戏服务),你也可以使用另一个非官方的服务,这将是非常棒的。你能给我指出一些可以帮助我开始使用这种方法的资源吗?是的,你甚至可以使用UNET(Unity多人游戏服务),你也可以使用另一种非官方的服务,这将是非常好的。你能给我指出一些可以帮助我开始使用这种方法的资源吗?这是否意味着它将是完全定制的网络实现,而不是使用内置的NetworkManager/Identity等?在服务器端,它与Unity3D无关。您必须继承SmartFoxServer提供的基本扩展,但您可以按照自己的方式对其进行自定义。这是否意味着它将是完全自定义的网络实现,而不使用内置的NetworkManager/Identity等?在服务器端,它与Unity3D无关。您必须继承SmartFoxServer提供的基本扩展,但可以按照您的需要进行自定义。