예제 #1
0
        void StartHostClient()
        {
            logger.Log("NetworkManager ConnectLocalClient");

            server.ActivateHostScene();

            RegisterClientMessages(client.Connection);
        }
예제 #2
0
        void StartHostClient()
        {
            if (LogFilter.Debug)
            {
                Debug.Log("NetworkManager ConnectLocalClient");
            }

            server.ActivateHostScene();

            RegisterClientMessages(client.Connection);
        }
예제 #3
0
        internal void FinishLoadScene(string sceneName, SceneOperation sceneOperation)
        {
            // host mode?
            if (client && client.IsLocalClient)
            {
                logger.Log("Finished loading scene in host mode.");

                if (client.Connection != null && sceneOperation == SceneOperation.Normal)
                {
                    client.OnAuthenticated(client.Connection);
                }

                // server scene was loaded. now spawn all the objects
                server.ActivateHostScene();

                // call OnServerSceneChanged
                OnServerSceneChanged(sceneName, sceneOperation);

                if (client.IsConnected)
                {
                    // let client know that we changed scene
                    OnClientSceneChanged(sceneName, sceneOperation);
                }
            }
            // server-only mode?
            else if (server && server.Active)
            {
                logger.Log("Finished loading scene in server-only mode.");

                server.SpawnObjects();
                OnServerSceneChanged(sceneName, sceneOperation);
            }
            // client-only mode?
            else if (client && client.Active)
            {
                logger.Log("Finished loading scene in client-only mode.");

                if (client.Connection != null && sceneOperation == SceneOperation.Normal)
                {
                    client.OnAuthenticated(client.Connection);
                }

                OnClientSceneChanged(sceneName, sceneOperation);
            }
        }
예제 #4
0
        internal void ConnectHost(NetworkServer server)
        {
            logger.Log("Client Connect Host to Server");
            connectState = ConnectState.Connected;

            InitializeAuthEvents();

            // create local connection objects and connect them
            (IConnection c1, IConnection c2) = PipeConnection.CreatePipe();

            server.SetLocalConnection(this, c2);
            hostServer = server;
            Connection = new NetworkConnection(c1);
            RegisterHostHandlers();

            server.ActivateHostScene();

            _ = OnConnected();
        }