How to playerprefs?

Hello, i have two script, in first script is character stats (in create character scene) and second script for health, mana, and load stats (in second scene with game). But i don’t know how to load stats in second scene. Can you help me? please?
Script for character stats:

static var HP : int = 0;

static var MP : int = 0;

static var STR : int = 0;

static var MND : int = 0;

static var DEF : int = 0;

static var ATK : int = 0;



var loadlevel : boolean = false;



var pocet = 15; //maximum presses on +



var pridat : boolean = true; //+ button

var odebrat : boolean = true; //- button



function Update(){

	if (loadlevel){

		Application.LoadLevel("Mapa2");

   		gameObject.Find("player").SendMessage("loadgame");

	}



	if (pocet == 0){

		pridat = false;

		odebrat = true;

	}

	else if(pocet >= 0){

		pridat = true;

		odebrat = true;

	}

	if (pocet == 15){

		pridat = true;

		odebrat = false;

	}

}



function OnGUI ()

{

   //(H-pos, V-pos, H-size, V-size)

   GUI.Label (Rect (5,5,100,25), "HP: " + HP);

   GUI.Label (Rect (5,20,100,25), "MP: " + MP);

   GUI.Label (Rect (5,35,100,25), "STR: " + STR);

   GUI.Label (Rect (5,50,100,25), "MND " + MND);

   GUI.Label (Rect (5,65,100,25), "DEF: " + DEF);

   GUI.Label (Rect (5,80,100,25), "ATK: " + ATK);

   GUI.Box (Rect (115,80,50,20), "" + pocet);

   if(GUI.Button (Rect (500,500,50,20), "Vytvořit")){

   		loadlevel = true;

   }

   

   //STATS +

   

   if(GUI.Button (Rect (50,5,25,15), "+")){  //HP+

   	if(pridat){

   	HP ++;

   	pocet --;

   	}

   }

   if(GUI.Button (Rect (50,20,25,15), "+")){  //MP+

   	if(pridat){

   	MP ++;

   	pocet --;

   	}

   }

   if(GUI.Button (Rect (50,35,25,15), "+")){  //STR+

   	if(pridat){

   	STR ++;

   	pocet --;

   	}

   }

   if(GUI.Button (Rect (50,50,25,15), "+")){  //MND+

   	if(pridat){

   	MND ++;

   	pocet --;

   	}

   }

   if(GUI.Button (Rect (50,65,25,15), "+")){  //DEF+

   	if(pridat){

   	DEF ++;

   	pocet --;

   	}

   }

   if(GUI.Button (Rect (50,80,25,15), "+")){  //ATK+

   	if(pridat){

   	ATK ++;

   	pocet --;

   	}

   }  

   

   //STATS -

   

   if(GUI.Button (Rect (74,5,25,15), "-")){  //HP-

   	if(odebrat){

   	HP --;

   	pocet ++;

   	}

   }

   if(GUI.Button (Rect (74,20,25,15), "-")){  //MP-

   	if(odebrat){

   	MP --;

   	pocet ++;

   	}

   }

   if(GUI.Button (Rect (74,35,25,15), "-")){  //STR-

   	if(odebrat){

   	STR --;

   	pocet ++;

   	}

   }

   if(GUI.Button (Rect (74,50,25,15), "-")){  //MND-

   	if(odebrat){

   	MND --;

   	pocet ++;

   	}

   }

   if(GUI.Button (Rect (74,65,25,15), "-")){  //DEF-

   	if(odebrat){

   	DEF --;

   	pocet ++;

   	}

   }

   if(GUI.Button (Rect (74,80,25,15), "-")){  //ATK-

   	if(odebrat){

   	ATK --;

   	pocet ++;

   	}

   } 

}

And script for health,mana and load stats…

import System;



import System.Collections;



import System.Xml;



import System.Xml.Serialization;



import System.IO;



import System.Text;





class DemoData



{



    var x : float;



    var y : float;



    var z : float;



    var name : String;



    var experience : float;



}







class UserData



{



    



   public var _iUser : DemoData = new DemoData();



 



   function UserData() { }



}



var load : boolean = false;

var save : boolean = false;





var mySkin : GUISkin;





var expTexture : Texture;



var window : boolean = false;



var target: Transform;







var generalWidth = 50;



var userHeight = 50;





var maxPlayerHealth = 1000;



var playerHealth = 1000;



var playerMana = 1000;



var maxPlayerMana = 1000;



var playerEnergy = 100;





//Character stats *********************************

static var HP : int = 0;

static var MP : int = 0;

static var STR : int = 0;

static var MND : int = 0;

static var DEF : int = 0;

static var ATK : int = 0;



var pocet = 0; //maximum presses on +



var pridat : boolean = true; //+ button

var odebrat : boolean = true; //- button



//End of Character stats ********************************



var playerPositionX = 0;



var playerPositionY = 0;



var playerPositionZ = 0;













//Variable For Experience *******************************************************



var curExp : float;

var maxExp : float;

var level : float = 0;



//EndofExpVariables *************************************************************







//Saving Variables **************************************************************



private var _Save : Rect;



private var _Load : Rect;







private var _SaveMSG : Rect;



private var _LoadMSG : Rect;







//var _ShouldSave : boolean;



//var _ShouldLoad : boolean;



//var _SwitchSave : boolean;



//var _SwitchLoad : boolean;



private var _FileLocation : String;



private var _FileName : String = "SaveData.xml";







//public GameObject player;



var player : GameObject;



var playerName : String = "Default";







private var myData : UserData;



private var _data : String;







private var VPosition : Vector3;



//EndOfSaving Variables *********************************************************



function health(){

	playerHealth -= 50;

}



function savegame(){

	yield WaitForSeconds(10);

	save = true;

}



function Start(){

	savegame();

}



function loadgame(){

	load = true;

}





function Awake () { 



      // GUI for the Save/Load



      _Save=new Rect(50,155,100,20);



      _Load=new Rect(50,175,100,20);



      _Name=new Rect(50,240,200,20);



      _SaveMSG=new Rect(50,120,200,40);



      _LoadMSG=new Rect(50,140,200,40);



      _NameMSG=new Rect(50,180,200,40);



       



      // XML Save/Load path



      _FileLocation=Application.dataPath;



      



          



      // Creating something to store information into.



      myData=new UserData();



   }







function OnGUI ()



{

	GUI.skin = mySkin;



	

	if(window){

	

	

	//Character stats ********************************

	//(H-pos, V-pos, H-size, V-size)

   GUI.Label (Rect (200,75,100,25), "HP: " + HP);

   GUI.Label (Rect (200,90,100,25), "MP: " + MP);

   GUI.Label (Rect (200,105,100,25), "STR: " + STR);

   GUI.Label (Rect (200,120,100,25), "MND " + MND);

   GUI.Label (Rect (200,135,100,25), "DEF: " + DEF);

   GUI.Label (Rect (200,150,100,25), "ATK: " + ATK);

   GUI.Box (Rect (310,150,50,20), "" + pocet);

   

   //STATS +

   

   if(GUI.Button (Rect (245,75,25,15), "+")){  //HP+

   	if(pridat){

   	HP ++;

   	pocet --;

   	playerHealth += 15;

   	}

   }

   if(GUI.Button (Rect (245,90,25,15), "+")){  //MP+

   	if(pridat){

   	MP ++;

   	pocet --;

   	playerMana += 15;

   	}

   }

   if(GUI.Button (Rect (245,105,25,15), "+")){  //STR+

   	if(pridat){

   	STR ++;

   	pocet --;

   	}

   }

   if(GUI.Button (Rect (245,120,25,15), "+")){  //MND+

   	if(pridat){

   	MND ++;

   	pocet --;

   	}

   }

   if(GUI.Button (Rect (245,135,25,15), "+")){  //DEF+

   	if(pridat){

   	DEF ++;

   	pocet --;

   	}

   }

   if(GUI.Button (Rect (245,150,25,15), "+")){  //ATK+

   	if(pridat){

   	ATK ++;

   	pocet --;

   	}

   }  

   



   //End of Character stats ***********************************

	



	playerName = GUI.TextArea (Rect(generalWidth,userHeight,100,25),playerName);



	



	//Health ********************************************************************



	GUI.Box (Rect (50,75,150,25), "Health:" + playerHealth);



	//EndOfHealth ***************************************************************



	



	//Mana **********************************************************************



	GUI.Box (Rect (50,100,150,25), "Mana:" + playerMana);



	//EndOfMana *****************************************************************



	



	//Energy ********************************************************************



	GUI.Box (Rect (50,125,150,25), "Energy:" + playerEnergy);



	//EndOfEnergy ***************************************************************

	



	//Experience ****************************************************************



	GUI.Box (Rect (50,25,150,25),"Level:" + level);



	//EndOfExperience ***********************************************************



	







    //LoadingPlayers ************************************************************      



    if (load) {



      



      // Load our UserData into myData



      LoadXML();



      if(_data.ToString() != "")



      {



         myData = DeserializeObject(_data);



         VPosition=new Vector3(myData._iUser.x,myData._iUser.y,myData._iUser.z);             



         player.transform.position=VPosition;



         curExp = myData._iUser.experience;



         Debug.Log("Load Successful");



      }



   		 



   }



   //EndOfLoadingPlayers *******************************************************



   



   //SavingPlayers *************************************************************



   if (save) {

   





      //Debug.Log("SaveLoadXML: sanity check:"+ player.transform.position.x);



      



      myData._iUser.x = player.transform.position.x;



      myData._iUser.y = player.transform.position.y;



      myData._iUser.z = player.transform.position.z;



      myData._iUser.name = playerName;



      myData._iUser.experience = curExp;   



        



      // Time to creat our XML!



      _data = SerializeObject(myData);



      // This is the final resulting XML from the serialization process



      CreateXML();



      Debug.Log(_data);



   }

   }



   //EndOfSavingPlayers *********************************************************

   	GUI.DrawTexture(Rect(300, 598, 700 *(curExp/maxExp), 10), expTexture);

   	

   	//Health bar********************************************************************



	GUI.Box (Rect (50,534,150,25), "Health:" + playerHealth);



	//EndOfHealth bar***************************************************************



	



	//Mana bar**********************************************************************



	GUI.Box (Rect (50,559,150,25), "Mana:" + playerMana);



	//EndOfMana bar*****************************************************************



	



	//Energy bar********************************************************************



	GUI.Box (Rect (50,584,150,25), "Energy:" + playerEnergy);



	//EndOfEnergy bar************************************************************





}



function Update ()



{

	savegame();

	

	//Character stats *****************************

	if (pocet == 0){

		pridat = false;

		odebrat = true;

	}

	else if(pocet >= 0){

		pridat = true;

		odebrat = true;

	}

	if (pocet == 15){

		pridat = true;

		odebrat = false;

	}

	//End of Character stats *******************************



	if (Input.GetKeyDown ("c")){

		if(window == false){

			window = true;

		}else{

			window = false;

		}

	}



	if(playerHealth <= 0) {



    	print(playerName + "has died...");



    	PlayerDie();



	}





	// Here is the level decider. If the current exp is higher then the number there then you +1 level.





	if (curExp >= maxExp)

	{

		// It means we have leveled up

		print ("LevelUp" + level);

		curExp = 0;

		LevelUp();

	}	

}



function LevelUp()

{

	// Increase our max exp

	maxExp += 50;

	level ++;

	

	pocet += 3;

	

    playerMana = maxPlayerMana;

    maxPlayerMana += 40;

    

    playerHealth = maxPlayerHealth;

    maxPlayerHealth += 50;

}





function PlayerDie()



{



	player.transform.position = Vector3(-10,1,-5); // A vector 3 teleport

	player.transform.localEulerAngles = Vector3(0,0,0);



	playerHealth = 1000;



	playerMana = 1000;		// Reseting the vitals or else it will loop the death(HP = 0)



	playerEnergy = 100;

	

	curExp -= 20;



}



function EnemyDie()



{

	

	curExp += 10;

}



function RedPotion()



{

	

	playerHealth += 200;

}



function BluePotion()



{

	

	playerMana += 200;

}







function OnCollisionEnter(collision : Collision) {



        



}







function OnTriggerEnter()



{





}







//XML Code *****************************************************************







function UTF8ByteArrayToString(characters : byte[] )



{     



   var encoding : UTF8Encoding  = new UTF8Encoding();



   var constructedString : String  = encoding.GetString(characters);



   return (constructedString);



}











function StringToUTF8ByteArray(pXmlString : String)



{



   var encoding : UTF8Encoding  = new UTF8Encoding();



   var byteArray : byte[]  = encoding.GetBytes(pXmlString);



   return byteArray;



}



   







function SerializeObject(pObject : Object)



{



   var XmlizedString : String  = null;



   var memoryStream : MemoryStream  = new MemoryStream();



   var xs : XmlSerializer = new XmlSerializer(typeof(UserData));



   var xmlTextWriter : XmlTextWriter  = new XmlTextWriter(memoryStream, Encoding.UTF8);



   xs.Serialize(xmlTextWriter, pObject);



   memoryStream = xmlTextWriter.BaseStream; // (MemoryStream)



   XmlizedString = UTF8ByteArrayToString(memoryStream.ToArray());



   return XmlizedString;



}











function DeserializeObject(pXmlizedString : String)   



{



   var xs : XmlSerializer  = new XmlSerializer(typeof(UserData));



   var memoryStream : MemoryStream  = new MemoryStream(StringToUTF8ByteArray(pXmlizedString));



   var xmlTextWriter : XmlTextWriter  = new XmlTextWriter(memoryStream, Encoding.UTF8);



   return xs.Deserialize(memoryStream);



}











function CreateXML()



{



   var writer : StreamWriter;







   var t : FileInfo = new FileInfo(_FileLocation+"/"+ _FileName);



   if(!t.Exists)



   {



      writer = t.CreateText();



   }



   else



   {



      t.Delete();



      writer = t.CreateText();



   }



   writer.Write(_data);



   writer.Close();



   Debug.Log("File written");



}



   



function LoadXML()



{



   //StreamReader r = File.OpenText(_FileLocation+"\\"+ _FileName);



   var r : StreamReader = File.OpenText(_FileLocation+"/"+ _FileName);



   var _info : String = r.ReadToEnd();



   r.Close();



   _data=_info;



   Debug.Log("File Read");



}







//EndOfXML Code **************************************************************

PlayerPreft.SetInt(key,value) to set
PlayerPrefs.GetInt(key,defaultValue) to get

You don’t have to use int, just an example.

I read this example, but i don’t know how can use it

You’d only use PlayerPrefs for persistent storage. In this case, use DontDestroyOnLoad.

–Eric

And how use DontDestroyOnLoad?

http://unity3d.com/support/documentation/ScriptReference/Object.DontDestroyOnLoad.html

Unity - Scripting API: Object.DontDestroyOnLoad i know, but how to set in my script?

…in my second script is when you press “c” gui with stats is true

Exactly as it’s laid out in the example link in your post…

Yes, but what I write in brackets? DontDestroyOnLoad (what write here?);

I copy code from Unity - Scripting API: Object.DontDestroyOnLoad and put in my script but i need the the numbers from scene1 load in scene2. I don’t need buttons… from scene1 to scene2. I need only HP, MP, STR, ATK, DEF, INT numbers…

and therefore need playerprefs

Set player prefs is easy, but how get playerprefs in GUI.Text?

playerprefs are just your variables so you need to use there names. But you can make an script with only the stats vars and use DontDestroyOnLoad and you wont have the problem with GUI.

Yes, but I need only the values ​​recorded in the following script in a different scene. If I gave DontDestroyOnLoad so I keep it and it will be like in scene1, but I need the scene2 otherwise. I need to set and load values ​​in the GUI