/** Updates the Player's presence in the scene. According to the data set in this class, they will be added to or removed from the scene. */ public void UpdatePresenceInScene() { PlayerPrefab playerPrefab = KickStarter.settingsManager.GetPlayerPrefab(playerID); if (playerPrefab != null) { if (KickStarter.saveSystem.CurrentPlayerID == playerID) { playerPrefab.SpawnInScene(false); } else if (SceneChanger.CurrentSceneIndex == currentScene) { playerPrefab.SpawnInScene(false); } else { SubScene subScene = KickStarter.sceneChanger.GetSubScene(currentScene); if (subScene != null) { playerPrefab.SpawnInScene(subScene.gameObject.scene); } else { playerPrefab.RemoveFromScene(); } } } }
public static void PreparePlayer() { saveSystem.SpawnAllPlayers(); Player[] localPlayers = FindObjectsOfType <Player> (); if (settingsManager.playerSwitching == PlayerSwitching.Allow) { // Local players are ignored foreach (Player localPlayer in localPlayers) { if (localPlayer.ID <= -1) { ACDebug.LogWarning("Local Player " + localPlayer.GetName() + " found in scene " + localPlayer.gameObject.scene.name + ". This is not allowed when Player Switching is enabled - in this mode, Players can only be spawned in.", localPlayer); } } PlayerPrefab playerPrefab = settingsManager.GetPlayerPrefab(saveSystem.CurrentPlayerID); if (playerPrefab != null) { playerPrefab.SpawnInScene(true); } } else { // Local players take priority foreach (Player localPlayer in localPlayers) { if (localPlayer.ID == -1) { localPlayer.ID = -2 - SceneChanger.CurrentSceneIndex; // Always unique to the scene player = localPlayer; return; } } foreach (Player localPlayer in localPlayers) { if (localPlayer.ID == 0) { player = localPlayer; return; } } if (settingsManager.GetDefaultPlayer() != null) { player = settingsManager.GetDefaultPlayer().SpawnFromPrefab(0); } } if (player == null && settingsManager.movementMethod != MovementMethod.None) { ACDebug.LogWarning("No Player found - this can be assigned in the Settings Manager."); } if (player) { player.EndPath(); player.Halt(false); } KickStarter.saveSystem.SpawnFollowingPlayers(); }