how to store data (Varibles) without losing them each scene?

hello. what i want to do is to check wether a username has been saved. if not, load the window to create a new user name. the new user name will be saved in playerprefs. the only thing is, is i don't know how i would check if a user name is already saved. i tried to use getString (from playprefs) to check wether a username is already saved, but, every time i load the game, the window to create a new user does not appear. is there any alternitives to save a varible "State" throughout the launch of the game?

here's the code i'm using now:

    static var userName;
var savedUser : boolean = false;
var windowLoad = Rect (Screen.width / 2- 50, Screen.height / 2 - 50 ,200,150);
var enteredName = "Enter Name Here";  
var prefsReset = 0;

function OnGUI()
{
     if(!PlayerPrefs.GetString("User") )
     {
         windowLoad = GUI.Window(0,windowLoad,windowElements,"Profile Setup");
     }       
}

function windowElements(windowID : int)
{
     if(GUI.Button(Rect(60,120,80,20), "Create User"))
     {
         PlayerPrefs.SetString("User",enteredName);
     }
    enteredName = GUI.TextField(Rect(16,85,170,20),enteredName);
    GUI.Label(Rect(10,20,250,60), "Welcome. To start, Just enter 
 your name, and click the 
 'Create User' Button" );

     GUI.DragWindow();
}

I think your problem lies in the method you're using to check whether the name has not yet been set. The correct way to do it is comparing the returned pref value with the "default" value for that pref. The default value is returned if no value has yet been set for that pref name.

You can optionally specify the default value to return if your pref hasn't been set, like this:

// get username, or return 'Unnamed' if not set
var username = PlayerPrefs.GetString("User", "Unnamed");

And then you could test for it like this:

if (username == "Unnamed") {
    // no username has been set yet!
}

However each type of pref has a sensible default, and the default for this with strings (if you don't specify a value for if unset) is an empty string, so you can check for that like this:

var username = PlayerPrefs.GetString("User");
if (username == "") {
    // no username has been set yet!
}

Hope this solves your problem!