Application.LoadLevel loading the current scene instead of the specifed one

I am working on a game where players take turns firing cannonballs at each others castle. After Player 1 fires, I want the game to wait a few seconds, then load player 2’s scene, and vice versa.

I used Application.LoadLevel to try to do this, but instead of loading the level I try to pass in, it reloads the current scene. My scenes are called Player1 and Player2, and both are loaded into the build settings. I have tried calling Application.LoadLevel with both the build ID for the scenes and their names, but neither seems to actually cause the correct level to load.

Here is my code:

var activePlayer : String = EditorApplication.currentScene;
Debug.Log(activePlayer);

if (activePlayer == "Assets/Scenes/Player1.unity"){
	yield WaitForSeconds (6);
	Application.LoadLevel("Player2");
	print("Player 2's Turn");
} else {
	yield WaitForSeconds (6);
	Application.LoadLevel("Player1");
	print("Player 1's Turn");
}

}

Regardless of which scene I run the script from, it will print the scene name correctly when I assign it to the string activePlayer, and the if check correctly causes the game to print player 1/player 2’s turn depending on which scene is active.

The issue is that I can’t seem to get Application.LoadLevel to switch the scenes, as it currently just reloads whichever one is currently active.

If they’re indeed shooting at each other, changing the scene for that seems kinda strange… Shouldn’t you rather just switch the camera?

And you have to set up the levels in the build options for them to load through Application.LoadLevel();