anyone know what this is all about?
yes, the level IS in the build settings. I get this error when trying to load a saved game. A script that use to work just fine where it would load the level and the player and the players position. Now, if on a different level than the save point, it just loads the level and the player in the start position ( not where he was when I saved). hitting the load button a second time puts the player in the position he was when I saved. like I said, it use to work - I haven’t touched the script since - and now it doesn’t work with this error
Level ‘true’ (-1) couldn’t be loaded because it has not been added to the build settings.
To add a level to the build settings use the menu File->Build Settings…
Do you have the code associated? That would help
it wasn’t a coding thing. the script that runs making that error appear has not changed in 6 months. I followed the “advice” of something I read in another post somewhere how sometimes the EditorBuildSettings asset file gets it wrong somehow . I opened it and it looked fine.But I had made a backup copy a few weeks back of my project and ( after making another copy of the current project status) just took the old ProjectSettings folder and copied over the current one. The error went away. No clue why it just did although it didn’t solve the problem of having to hit the LOAD button twice so, yes, you are right , including the code would help. I got it from a youtube post. I have tried contacting them ( in Slovakia) with no luck.I don’t think it’s the code as all the comments on the page and none mention having my problem so I don’t know if this will help
/* PauseMenu.js by ThunderWire_Games * Script for Pause Game and - Save/Load Menu */
class ComponentsClass {
var BlurEffect : Blur;
var Look : MouseLook;
}
var Components : ComponentsClass = new ComponentsClass ( ) ;
var playerPosition : Transform;
var mainMenuSceneName : String;
var Skin : GUISkin;
var LoadPosition : String = "false"; //set to "true" is you want to load position or "false" to load only level
private var LoadLevel : boolean = true;
private var Look1 : MouseLook;
private var PlayerX : float;
private var PlayerY : float;
private var PlayerZ : float;
private var pauseEnabled = false;
function Start(){
PlayerPrefs.SetString("LoadPosition",LoadPosition); //set loadPosition true or false
pauseEnabled = false;
Time.timeScale = 1;
AudioListener.volume = 1;
Screen.showCursor = false;
LoadPlayer();
}
function SavePlayer(){
if(PlayerPrefs.GetString("LoadPosition") == "true"){ //save current position
PlayerPrefs.SetFloat("PlayerX",PlayerX);
PlayerPrefs.SetFloat("PlayerY",PlayerY);
PlayerPrefs.SetFloat("PlayerZ",PlayerZ);
PlayerX =(playerPosition.transform.position.x);
PlayerY =(playerPosition.transform.position.y);
PlayerZ =(playerPosition.transform.position.z);
PlayerPrefs.SetString("LoadPosition", "true"); //allow the load position
//Debug.Log("Saved to " + " X: " + PlayerPrefs.GetFloat("PlayerX") + " Y: " + PlayerPrefs.GetFloat("PlayerY") + " Z: " + PlayerPrefs.GetFloat("PlayerZ"));
}
PlayerPrefs.SetString("LevelName", Application.loadedLevelName); //save current level
}
function loadLevel(){ //load saved position
if(PlayerPrefs.GetString("LevelName") == Application.loadedLevelName){ //check if you have Loaded Level
LoadLevel = false;
}
if(LoadLevel == true){
Application.LoadLevel(PlayerPrefs.GetString("LevelName")); //load saved level
}
}
function LoadPlayer(){ //load player position on saved level
if(LoadLevel == false && PlayerPrefs.GetString("LoadPosition") == "true"){
playerPosition.transform.position.x = (PlayerPrefs.GetFloat("PlayerX"));
playerPosition.transform.position.y = (PlayerPrefs.GetFloat("PlayerY"));
playerPosition.transform.position.z = (PlayerPrefs.GetFloat("PlayerZ"));
//Debug.Log("LOAD POS");
}
}
function Update(){
PlayerX =(playerPosition.transform.position.x); PlayerY =(playerPosition.transform.position.y); PlayerZ =(playerPosition.transform.position.z); //set current player position
LoadPosition = PlayerPrefs.GetString("LoadPosition"); //check if loadPosition is true or false
//check if pause button (escape key) is pressed
if(Input.GetKeyDown("escape")){
Look1 = gameObject.GetComponent (MouseLook); //set MouseLook script
//check if game is already paused
if(pauseEnabled == true){
//unpause the game
pauseEnabled = false;
Time.timeScale = 1;
AudioListener.volume = 1;
Screen.showCursor = false;
Components.BlurEffect.enabled = false;
Components.Look.enabled = true;
Look1.enabled = true;
}
//else if game isn't paused, then pause it
else if(pauseEnabled == false){
pauseEnabled = true;
AudioListener.volume = 0;
Time.timeScale = 0;
Screen.showCursor = true;
Components.BlurEffect.enabled = true;
Components.Look.enabled = false;
Look1.enabled = false;
}
}
}
private var showGraphicsDropDown = false;
function OnGUI(){
GUI.skin = Skin;
if(pauseEnabled == true){
//Make a background box
GUI.Box(Rect(Screen.width /2 - 100,Screen.height /2 - 180,250,280), "Pause Menu");
//Make Main Menu button
if(GUI.Button(Rect(Screen.width /2 - 100,Screen.height /2 - 50,250,50), "Main Menu")){
Application.LoadLevel(mainMenuSceneName);
}
//Make Save Game button
if(GUI.Button(Rect(Screen.width /2 - 100,Screen.height /2 - 100,250,50), "Save Game")){
SavePlayer();
}
if(GUI.Button(Rect(Screen.width /2 - 100,Screen.height /2 - 150,250,50), "Load Game")){
loadLevel();
LoadPlayer();
}
//Make Change Graphics Quality button
if(GUI.Button(Rect(Screen.width /2 - 100,Screen.height /2 ,250,50), "Change Graphics Quality")){
if(showGraphicsDropDown == false){
showGraphicsDropDown = true;
}
else{
showGraphicsDropDown = false;
}
}
//Create the Graphics settings buttons, these won't show automatically, they will be called when
//the user clicks on the "Change Graphics Quality" Button, and then dissapear when they click
//on it again....
if(showGraphicsDropDown == true){
if(GUI.Button(Rect(Screen.width /2 + 150,Screen.height /2 ,250,50), "Fastest")){
QualitySettings.currentLevel = QualityLevel.Fastest;
}
if(GUI.Button(Rect(Screen.width /2 + 150,Screen.height /2 + 50,250,50), "Fast")){
QualitySettings.currentLevel = QualityLevel.Fast;
}
if(GUI.Button(Rect(Screen.width /2 + 150,Screen.height /2 + 100,250,50), "Simple")){
QualitySettings.currentLevel = QualityLevel.Simple;
}
if(GUI.Button(Rect(Screen.width /2 + 150,Screen.height /2 + 150,250,50), "Good")){
QualitySettings.currentLevel = QualityLevel.Good;
}
if(GUI.Button(Rect(Screen.width /2 + 150,Screen.height /2 + 200,250,50), "Beautiful")){
QualitySettings.currentLevel = QualityLevel.Beautiful;
}
if(GUI.Button(Rect(Screen.width /2 + 150,Screen.height /2 + 250,250,50), "Fantastic")){
QualitySettings.currentLevel = QualityLevel.Fantastic;
}
if(Input.GetKeyDown("escape")){
showGraphicsDropDown = false;
}
}
//Make quit game button
if (GUI.Button (Rect (Screen.width /2 - 100,Screen.height /2 + 50,250,50), "Quit Game")){
Application.Quit();
}
}
}