Beispiel #1
0
        void ParseForTransport()
        {
            string transport = GetArgValue("-transport");

            if (string.IsNullOrEmpty(transport) || transport.Equals("kcp"))
            {
                KcpTransport newTransport = gameObject.AddComponent <KcpTransport>();
                this.transport = newTransport;

                //Try to apply port if exists and needed by transport.
                if (!string.IsNullOrEmpty(port))
                {
                    newTransport.Port = ushort.Parse(port);
                }
            }

#if IGNORANCE
            if (string.IsNullOrEmpty(transport) || transport.Equals("ignorance"))
            {
                IgnoranceNG newTransport = networkManager.gameObject.AddComponent <IgnoranceNG>();

                //Try to apply port if exists and needed by transport.
                if (!string.IsNullOrEmpty(port))
                {
                    newTransport.Config.CommunicationPort = ushort.Parse(port);
                }
                networkManager.server.Transport = newTransport;
                networkManager.client.Transport = newTransport;

                this.transport = newTransport;
            }
#endif
        }
Beispiel #2
0
        public static GameObject CreateNetworkManager()
        {
            var components = new Type[]
            {
                typeof(NetworkManager),
                typeof(NetworkServer),
                typeof(NetworkClient),
                typeof(NetworkSceneManager),
                typeof(ServerObjectManager),
                typeof(ClientObjectManager),
                typeof(CharacterSpawner),
                typeof(KcpTransport),
                typeof(LogSettings)
            };
            var go = new GameObject("NetworkManager", components);

            KcpTransport        transport = go.GetComponent <KcpTransport>();
            NetworkSceneManager nsm       = go.GetComponent <NetworkSceneManager>();

            NetworkClient networkClient = go.GetComponent <NetworkClient>();

            networkClient.Transport = transport;

            NetworkServer networkServer = go.GetComponent <NetworkServer>();

            networkServer.Transport = transport;

            ServerObjectManager serverObjectManager = go.GetComponent <ServerObjectManager>();

            serverObjectManager.Server = networkServer;
            serverObjectManager.NetworkSceneManager = nsm;

            ClientObjectManager clientObjectManager = go.GetComponent <ClientObjectManager>();

            clientObjectManager.Client = networkClient;
            clientObjectManager.NetworkSceneManager = nsm;

            NetworkManager networkManager = go.GetComponent <NetworkManager>();

            networkManager.Client = networkClient;
            networkManager.Server = networkServer;
            networkManager.ServerObjectManager = serverObjectManager;
            networkManager.ClientObjectManager = clientObjectManager;
            networkManager.NetworkSceneManager = nsm;

            CharacterSpawner playerSpawner = go.GetComponent <CharacterSpawner>();

            playerSpawner.Client              = networkClient;
            playerSpawner.Server              = networkServer;
            playerSpawner.SceneManager        = nsm;
            playerSpawner.ServerObjectManager = serverObjectManager;
            playerSpawner.ClientObjectManager = clientObjectManager;

            nsm.Client = networkClient;
            nsm.Server = networkServer;
            return(go);
        }
    public override void Start()
    {
        base.Start();

        kcp = GetComponent <KcpTransport>();

#if UNITY_SERVER
        StartServer();
#endif
    }
    private void OnValidate()
    {
#if UNITY_EDITOR
        if (kcpTransport == null)
        {
            kcpTransport = FindObjectOfType <KcpTransport>();
        }
#endif
        return;
    }
Beispiel #5
0
        public StandaloneNG()
        {
            server           = new NetworkServer();
            servertransport  = new KcpTransport();
            server.Transport = servertransport;
            _ = server.ListenAsync();

            client           = new NetworkClient();
            clienttransport  = new KcpTransport();
            client.Transport = clienttransport;
            client.ConnectAsync("localhost");
        }
Beispiel #6
0
    void Start()
    {
        manager      = this.GetComponent <NetworkManager>();
        kcpTransport = this.GetComponent <KcpTransport>();
        ShowConnectionGUI(true);

        manager.networkAddress = SERVER_IP;
        kcpTransport.Port      = PORT;

        //A SUPPRIMER
        //Host();
    }
 private IEnumerator waitForSingleton()
 {
     while (true)
     {
         if (NetworkManager.singleton != null)
         {
             networkManager         = NetworkManager.singleton;
             kcpTransport           = networkManager.GetComponent <KcpTransport>();
             customNetworkDiscovery = networkManager.GetComponent <CustomNetworkDiscovery>();
             yield break;
         }
         yield return(null);
     }
 }
Beispiel #8
0
        public static GameObject CreateNetworkManager()
        {
            var go = new GameObject("NetworkManager", typeof(NetworkManager), typeof(NetworkServer), typeof(NetworkClient), typeof(NetworkSceneManager), typeof(ServerObjectManager), typeof(ClientObjectManager), typeof(PlayerSpawner), typeof(KcpTransport), typeof(LogSettings));

            KcpTransport        transport = go.GetComponent <KcpTransport>();
            NetworkSceneManager nsm       = go.GetComponent <NetworkSceneManager>();

            NetworkClient networkClient = go.GetComponent <NetworkClient>();

            networkClient.Transport = transport;

            NetworkServer networkServer = go.GetComponent <NetworkServer>();

            networkServer.transport = transport;

            ServerObjectManager serverObjectManager = go.GetComponent <ServerObjectManager>();

            serverObjectManager.server = networkServer;
            serverObjectManager.networkSceneManager = nsm;

            ClientObjectManager clientObjectManager = go.GetComponent <ClientObjectManager>();

            clientObjectManager.client = networkClient;
            clientObjectManager.networkSceneManager = nsm;

            NetworkManager networkManager = go.GetComponent <NetworkManager>();

            networkManager.client = networkClient;
            networkManager.server = networkServer;
            networkManager.serverObjectManager = serverObjectManager;
            networkManager.clientObjectManager = clientObjectManager;
            networkManager.sceneManager        = nsm;

            PlayerSpawner playerSpawner = go.GetComponent <PlayerSpawner>();

            playerSpawner.client              = networkClient;
            playerSpawner.server              = networkServer;
            playerSpawner.sceneManager        = nsm;
            playerSpawner.serverObjectManager = serverObjectManager;
            playerSpawner.clientObjectManager = clientObjectManager;

            nsm.client = networkClient;
            nsm.server = networkServer;
            return(go);
        }
Beispiel #9
0
        public IEnumerator Setup() => UniTask.ToCoroutine(async() =>
        {
            // each test goes in a different port
            // that way the transports can take some time to cleanup
            // without interfering with each other.
            port++;

            var transportGo = new GameObject("kcpTransport", typeof(KcpTransport));

            transport = transportGo.GetComponent <KcpTransport>();

            transport.Port = port;
            // speed this up
            transport.HashCashBits = 3;

            transport.Connected.AddListener(connection => serverConnection = (KcpConnection)connection);

            listenTask = transport.ListenAsync();

            var uriBuilder = new UriBuilder
            {
                Host   = "localhost",
                Scheme = "kcp",
                Port   = port
            };

            testUri = uriBuilder.Uri;

            clientConnection = (KcpConnection)await transport.ConnectAsync(uriBuilder.Uri);

            await UniTask.WaitUntil(() => serverConnection != null);

            // for our tests,  lower the timeout to just 0.1s
            // so that the tests run quickly.
            serverConnection.Timeout = 500;
            clientConnection.Timeout = 500;

            data = new byte[Random.Range(10, 255)];
            for (int i = 0; i < data.Length; i++)
            {
                data[i] = (byte)Random.Range(1, 255);
            }
        });
Beispiel #10
0
        void ParseForTransport()
        {
            string transport = GetArgValue("-transport");

            if (string.IsNullOrEmpty(transport) || transport.Equals("kcp"))
            {
                KcpTransport newTransport = networkManager.gameObject.AddComponent <KcpTransport>();

                //Try to apply port if exists and needed by transport.
                if (!string.IsNullOrEmpty(port))
                {
                    newTransport.Port = ushort.Parse(port);
                }
                networkManager.server.transport = newTransport;
                networkManager.client.Transport = newTransport;

                kcpTransport = newTransport;
            }
        }