NetworkManagerLobby.cs:
Код: Выделить всё
public void StartTransitionScene() //sets scene to loading scene
{
if (SceneManager.GetActiveScene().path == menuScene)
{
if (!IsReadyToStart()) { return; }
ServerChangeScene("Game");
}
}
public override void ServerChangeScene(string newSceneName)
{
if (SceneManager.GetActiveScene().path == menuScene && newSceneName.Contains("Game"))
{
for (int i = RoomPlayers.Count - 1; i >= 0; i--) //converts room players to game players
{
var conn = RoomPlayers[i].connectionToClient;
var gameplayerInstance = Instantiate(gamePlayerPrefab);
gameplayerInstance.SetDisplayName(RoomPlayers[i].DisplayName);
NetworkServer.Destroy(conn.identity.gameObject);
NetworkServer.ReplacePlayerForConnection(conn, gameplayerInstance.gameObject);
}
}
base.ServerChangeScene(newSceneName);
}
public override void OnServerSceneChanged(string sceneName)
{
if(sceneName.Contains("Game"))
{
GameObject playerSpawnSystemInstance = Instantiate(playerSpawnSystem);
NetworkServer.Spawn(playerSpawnSystemInstance);
}
}
Фото сцены
Я изолировал проблему с помощью этой функции, так как думал, что виновата сама система появления. проблема. Функция не вызывалась при отладке.
Подробнее здесь: https://stackoverflow.com/questions/768 ... fter-scene