public override void OnServerSceneChanged(string sceneName) { base.OnServerSceneChanged(sceneName); Debug.Log("Multiplayer Scene Was changed"); if (UnityEngine.SceneManagement.SceneManager.GetActiveScene().name != "Lobby") { raceSpawner = Instantiate(raceSpawnerPrefab); raceSpawner.transform.position = GameObject.Find("SpawnpointPlaceHolder").transform.position; raceSpawner.transform.rotation = GameObject.Find("SpawnpointPlaceHolder").transform.rotation; NetworkServer.Spawn(raceSpawner.gameObject); matchMaker.SetMatchAttributes(matchInfo.networkId, false, 0, OnSetMatchAttributes); } }
// parece que esto solo corre en el servidor // aqui no hay que hacer networkserver.spawn public override void OnServerAddPlayer(NetworkConnection conn, short controllerID) { Debug.Log("This section is triggered by ClientScene.AddPlayer"); Sanicball.Ball ball; if (UnityEngine.SceneManagement.SceneManager.GetActiveScene().name == "Lobby") { ball = (Sanicball.Ball)Instantiate(ballSpawner.ballPrefab, ballSpawner.transform.position, ballSpawner.transform.rotation); } else { raceSpawner = FindObjectOfType <RaceBallSpawner>(); ball = (Sanicball.Ball)Instantiate(raceSpawner.ballPrefab, raceSpawner.transform.position, raceSpawner.transform.rotation); } NetworkServer.AddPlayerForConnection(conn, ball.gameObject, controllerID); if (ball.gameObject.GetComponent <NetworkIdentity>().isLocalPlayer) { } else { ball.ballConnection = conn; } if (UnityEngine.SceneManagement.SceneManager.GetActiveScene().name == "Lobby") { if (ballSpawner.isClient && ballSpawner.isServer) { } else { } ballSpawner.pelota = ball; } else { raceSpawner.pelota = ball; } }