Problem when using script in multiple scenes.

Not really a question, just something I noticed that might or might not be a bug.

I have two scenes “Level1” and “Tutorial”. Both scenes have an object called “Loader” (not a prefab, just two different objects in two different scenes). Both loader objects share one script (Loader.cs). This script has public variables that are assigned in the editor.

For some reason both scenes use the values assigned in the scene “Level1”, (so values assigned in the scene “Tutorial” are ignored).

Is this a bug or is it by design?

Edit: The code of the Loader.cs. If I set test to 5 in “Tutorial” scene and 10 in “Level1” both scenes print out Test in this scene is: 10

using UnityEngine;
using System.Collections;

public class Loader : MonoBehaviour {
	public int test;
	public Player player;
	public Canvas hudCanvas;
	public GameObject connectingPanelPrefab;
	[HideInInspector]public static bool isEndOfTurn = false; //is set to true when player ends turn and actions are beeing processed/displayed
	public GameObject AIPrefab;

	public GameObject map1Prefab;
	public GameObject tutorialMapPrefab;

	void Awake () {
		Debug.Log ("Test in this scene is: " + test);

		//create the connecting panel
		GameObject connectingPanel = Instantiate (connectingPanelPrefab) as GameObject;
		connectingPanel.transform.SetParent (hudCanvas.transform, false);

		//set up single player game
		if ((GameData.currentMode == GameMode.SinglePlayer)) {
			Instantiate (map1Prefab);
			BattleManager.CreateSinglePlayerGame ();
		//set up tutorial
		else if (GameData.currentMode == GameMode.Tutorial) {
			Instantiate (tutorialMapPrefab);
			BattleManager.CreateSinglePlayerGame ();

On scene load the object is loaded from current scene so you can do 2 things:

Make static variables or make one object shared between scenes you can use this: