public void AttachServer(NetWorker server, RPCPackagerBehavior rpcPackagerBehavior) { var gameServer = this.gameObject.AddComponent <GameServer>(); gameServer.Init(server, ServerSettings, rpcPackagerBehavior.GetComponent <RPCPackager>()); Server = gameServer; }
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); }); }; } }