Beispiel #1
0
    public void AttachServer(NetWorker server, RPCPackagerBehavior rpcPackagerBehavior)
    {
        var gameServer = this.gameObject.AddComponent <GameServer>();

        gameServer.Init(server, ServerSettings, rpcPackagerBehavior.GetComponent <RPCPackager>());
        Server = gameServer;
    }
Beispiel #2
0
    public void Connected(NetWorker networker)
    {
        if (!networker.IsBound)
        {
            Debug.LogError("NetWorker failed to bind.");
            return;
        }

        if (m_Manager == null && NetworkManagerObj == null)
        {
            Debug.LogWarning("A network manager was not provided, generating a new one instead");
            NetworkManagerObj = new GameObject("Network Manager");
            m_Manager         = NetworkManagerObj.AddComponent <NetworkManager>();
        }
        else if (m_Manager == null)
        {
            m_Manager = Instantiate(NetworkManagerObj).GetComponent <NetworkManager>();
        }

        m_Manager.Initialize(networker);
        NetworkManager.Instance.automaticScenes = true;
        //NetworkObject.Flush(networker);

        if (networker.IsServer)
        {
            RPCPackagerBehavior rpcPackagerBehaviour = NetworkManager.Instance.InstantiateRPCPackager();
            GameController.Instance.AttachServer(networker, rpcPackagerBehaviour);
            SceneManager.LoadScene("LobbyScene");
        }
        else
        {
            GameController.Instance.AttachClient(networker);
            //networker.serverAccepted += (sender) =>
            //{
            //	MainThreadManager.Run(() =>
            //	{
            //		SceneManager.LoadScene("LobbyScene");
            //	});
            //};

            ((UDPClient)networker).connectAttemptFailed += (sender) =>
            {
                MainThreadManager.Run(() =>
                {
                    Debug.Log("Unable to connect to sever.");
                    SceneManager.LoadScene(0);
                });
            };
        }
    }