Switch Statement Gives Error PLEASE HELP!!!
I'm trying to make a switch statement to make it switch between scenes but I don't know what is wrong. using UnityEngine; using System.Collections;
public class SwitchScenes : MonoBehaviour {
public enum scenes {classic, arcade, selection};
void Update () {
if (Input.GetKeyDown (KeyCode.Mouse0)) {
switch (scenes) {
case scenes.arcade:
Application.LoadLevel("Arcade");
break;
case scenes.classic:
Application.LoadLevel("Classic");
break;
case scenes.selection:
Application.LoadLevel("Selection");
break;
}
}
}
}
Anything wrong with this? And yes all of these scenes exist in the Build Settings.
Answer by EmHuynh · Feb 14, 2016 at 07:18 PM
Hi, @Dudicus. The error is caused by your switch statement: switch( scenes )
scenes is being used as a variable when it's an enum. To resolve it, declare a scenes
variable and use in your switch statement. Also, Application.LoadLevel
is obsolete. Use SceneManager.LoadScene
instead (you will need this line of code: using UnityEngine.SceneManagement;
) Thanks for asking, let us know if you have more questions!
Here's the fixed version of your script:
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement; // For SceneManager.Load
public class SwitchScenes : MonoBehaviour
{
public enum scenes { classic, arcade, selection };
public scenes myScene; // Declare a scenes variable to be used
// in the switch statement below.
void Update()
{
if (Input.GetKeyDown( KeyCode.Mouse0 ) )
{
switch( myScene ) // Check myScene
{
case scenes.arcade:
SceneManager.LoadScene( "Arcade" ); // Used SceneManager.LoadScene instead
// of Application.LoadLevel
break;
case scenes.classic:
SceneManager.LoadScene( "Classic" );
break;
case scenes.selection:
SceneManager.LoadScene( "Selection" );
break;
}
}
}
}
Let me know if there are any improvements that I should make within my script, so I can learn from it.
Answer by Dudicus · Feb 15, 2016 at 03:18 PM
Oh, that works! Thanks! I'm not very good at switch statements and this is the first time I wrote one.
Your answer
Follow this Question
Related Questions
one default and 2 random answers. 0 Answers
Having an issue with using an Enum and using a string variable 0 Answers
Switch Case help 0 Answers
Switching out GameObject with Prefab? 2 Answers
Refactoring Nested Switch Statements 0 Answers