best way to send data btwn scenes

I’m not sure what the best way to do this is:

I have a level select screen. The objects that represent the levels are all derived from the same prefab. Level data is stored in the class in different variables. I have a gameManager object that has a list with all of the level objects stored in it. When I click on the level I want to play, that level is stored in a variable on gameObject called currentLevel. The gameManager script is set to dontDestroy so it persists between the level select scene and the game scene.

When a level is selected, the game scene is loaded and the gameManager persists with the list. The level gameObjects are shown as missing. To solve this, I made each level its own prefab and then linked the prefab into the list. The problem I am having now is that when I set currentLevel, it points to the gameObject in the level select scene and not the prefab. I am setting it using gameController.SetCurrentLevel(this);

How to I access the prefab instead of the object in the scene? Or is there a better way to approach this problem?

http://unity3d.com/learn/tutorials/modules/beginner/live-training-archive/persistence-data-saving-loading

you can use static variables or Playerprefs;