Esempio n. 1
0
    void Start()
    {
        if (!isServer)
        {
            WorldMesh = ClientSceneManager.Instance.WorldMesh;

            Invoke("ShowExplanationDialog", EXPLANATION_DIALOG_DELAY);
        }
        else if (isServer)
        {
            _startingBombPlayerConnectionId = GameUtils.ChooseRandomPlayerConnectionId();
            Debug.Log("=> bombPlayerConnectionId: " + _startingBombPlayerConnectionId);

            WorldMesh = ServerSceneManager.Instance.WorldMesh;

            Debug.Log("Countdown fished event is listening");
            PreparingCanvas.CountDownFinishedEvent += new PreparingGame.CountDownFinished(CountDownFinishedStartPlaying);

            //Triggered when last player loads game scene
            ServerSceneManager.Instance.OnPlayerDisconnectEvent += OnPlayerDisconnected;

            GameObject.Find("Fade").GetComponent <FadeScene> ().FadeInScene = true;
        }

        // use downloaded marker pattern
        MeshTransferManager.ApplyMarkerData(MarkerComponent);

        WorldMesh.ground.transform.parent   = MarkerScene.transform;
        WorldMesh.boundary.transform.parent = MarkerScene.transform;



        if (OnWorldMeshAvailableEvent != null)
        {
            OnWorldMeshAvailableEvent(WorldMesh);
        }


        foreach (var existingCarController in GameObject.FindObjectsOfType <CarController>())
        {
            existingCarController.init();
        }
    }
Esempio n. 2
0
    void Start()
    {
        DontDestroyOnLoad(gameObject);
        var ugly = UnityThreadHelper.Dispatcher;


        _meshTransferManager = new MeshTransferManager();

        _defaultSleepTimeout = Screen.sleepTimeout;



        //Listener for when the we have finished downloading the mesh
        _meshTransferManager.OnMeshDataReceivedEvent += OnMeshDataReceived;


        SceneManager.sceneLoaded += OnSceneLoaded;

        if (StartMuted)
        {
            AudioListener.volume = 0.0f;
        }
    }
    void Start()
    {
        DontDestroyOnLoad(gameObject);
        var ugly = UnityThreadHelper.Dispatcher;

        // If clients will be looking at localhost anyway, don't
        // pollute the network with broadcasts
        if (!Flags.GAME_SERVER_IS_LOCALHOST)
        {
            transform.gameObject.AddComponent <DiscoveryServer> ();
        }

        _networkLobbyManager = transform.gameObject.AddComponent <GameLobbyManager> ();

        _meshDiscoveryServer = new MeshDiscoveryServer();
        _meshTransferManager = new MeshTransferManager();

        _networkLobbyManager.logLevel     = UnityEngine.Networking.LogFilter.FilterLevel.Info;
        _networkLobbyManager.showLobbyGUI = false;
        _networkLobbyManager.minPlayers   = MIN_REQ_PLAYERS;

        // seemingly weird neccesary hack. todo: add this to our compat implementation
        _networkLobbyManager.maxPlayers     = MAX_DEVICES;
        _networkLobbyManager.maxConnections = MAX_DEVICES;
        _networkLobbyManager.lobbySlots     = new NetworkLobbyPlayer[_networkLobbyManager.maxPlayers];

        List <string> lobbyScenes = new List <string> ();

        lobbyScenes.Add("Idle");
        lobbyScenes.Add("Leaderboard");
        _networkLobbyManager.lobbyScenes = lobbyScenes;

        _networkLobbyManager.playScene = "Game";

        _networkLobbyManager.lobbyPlayerPrefab = LobbyPlayerPrefab;
        _networkLobbyManager.gamePlayerPrefab  = GamePlayerPrefab;

        _networkLobbyManager.networkPort = NetworkConstants.GAME_PORT;

        _networkLobbyManager.serverBindToIP    = true;
        _networkLobbyManager.serverBindAddress = Network.player.ipAddress;

        Debug.Log(string.Format("bound to {0}", _networkLobbyManager.serverBindAddress));


        _networkLobbyManager.customConfig = true;
        var config = _networkLobbyManager.connectionConfig;

        config.NetworkDropThreshold = 80;
        config.ConnectTimeout       = 10000;
        config.DisconnectTimeout    = 10000;
        config.PingTimeout          = 2000;
        _networkLobbyManager.channels.Add(UnityEngine.Networking.QosType.ReliableFragmented);
        _networkLobbyManager.channels.Add(UnityEngine.Networking.QosType.ReliableFragmented);

        _networkLobbyManager.StartServer();

        // register listeners for when players connect / disconnect
        _networkLobbyManager.OnLobbyServerConnectedEvent    += OnGamePlayerConnected;
        _networkLobbyManager.OnLobbyServerDisconnectedEvent += OnGamePlayerDisconnected;
        _networkLobbyManager.OnLobbyClientReadyToBeginEvent += OnGamePlayerReady;
        _networkLobbyManager.OnLobbyClientGameLoadedEvent   += OnPlayerGameLoaded;

        _meshDiscoveryServer.MeshServerDiscoveredEvent += OnMeshServerFound;

        _meshTransferManager.OnMeshDataReceivedEvent += OnMeshDataReceived;

        OnServerRequestLoadNewMesh();

        if (StartMuted)
        {
            AudioListener.volume = 0.0f;
        }
    }