1

是否可以通过使用 UNet 在 Unity3D 中为客户端和服务器创建单独的项目?

据我所知,这似乎是不可能的,Unity3D 官方文档对该主题并不太清楚,并且找到了零个示例或文章。

如果使用 Unity3D 提供的NetworkManager,服务器端逻辑和游戏客户端逻辑有很多耦合,是否可以将其分成两个不同的项目?服务器端应该只是一个无头服务器,客户端应该是没有所有服务器逻辑的普通游戏客户端。如果可能,它应该是什么样子?

4

1 回答 1

0

使用Network类,您可以轻松区分服务器和客户端。

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
    void OnGUI() {
        if (Network.isServer)
            GUILayout.Label("Running as a server");
        else
            if (Network.isClient)
                GUILayout.Label("Running as a client");

    }
}

或者NetworkBehaviour类的属性允许脚本随时知道网络对象的网络上下文是什么。

  1. isServer - 如果对象在服务器(或主机)上并且已生成,则为 true。
  2. isClient - 如果对象在客户端上并且由服务器创建,则为 true。
  3. isLocalPlayer - 如果对象是此客户端的播放器对象,则为 true。
  4. hasAuthority - 如果对象由本地进程拥有,则为 true
于 2018-01-15T10:05:38.697 回答