- Home /
Save/load playerprefs
I am making a relatively simple game, but i want to know how to save it. I made it using quite a few scripts and i ave two scenes: main menu and the actual game. I want to save the players position and some variables and then be able to have the option to either load them, or make a new file. It would be nice to be able to save up to three or so files. I heard about playerprefs and learned some stuff about it, but i could only find stuff about highscores.
I tried the playerprefs.getint in a script, it didn't work. here's the script i tried it on, before i put in the playerprefs script. It's supposed to respawn an enemy a certain number of times and then stopped. I just wanted, for now, to save how many times it respawned an enemy:
var Beholder : Transform; var targetThing : Transform; var Weapon: Transform; beholder.thing = targetThing; beholder.weapon = Weapon; var deathTimer : int = 0; var maxRespawns : int;
var respawnCount : int = 0.0;
function Update () {
if(beholder.death)
{
deathTimer++;
if(deathTimer == 50 && respawnCount < maxRespawns)
{
deathTimer = 0;
respawnCount++;
beholder.death = false;
var newBeholder = Instantiate(Beholder, transform.position, transform.rotation);
}
}
}
Answer by user-1846 (google) · May 22, 2010 at 05:32 PM
To save player preferences its actually really simple. They are saved between game sessions and are very easy to use.
Examples (Javascript):
//set a string to a player preference called "MyString"
PlayerPrefs.SetString("MyString", "MyValue");
//now retrieve this value
var test : String = PlayerPrefs.GetString("MyString");
//see? it works with ints too.
PlayerPrefs.SetInt("MyInt", 2);
You can find a complete list of functions by (in unitron) Typing PlayerPrefs, highlighting it, and then hitting the search documentation button.
Hope this helps, Christian Stewart
PlayerPrefs only saves very simple types. The easiest way to save the player's position inside PlayerPrefs, for example, is by storing 3 variables for position.x, y, and z.
OR, you can make a string like position.x+":"+position.y+":"+position.z and then parse it by PlayerPrefs.GetString("position").Split(":");
Note that saving a lot of data to PlayerPrefs can be very slow on Android and iOS devices. To improve this, you can write your own code to save this to a file, or use the following custom PlayerPrefs class we wrote: http://www.previewlabs.com/writing-playerprefs-fast/
Your answer
Follow this Question
Related Questions
Character Positions Not Serializing or Loading Properly? 1 Answer
How can playerprefs save my tower model and its position? 1 Answer
Saving Game Problem 1 Answer
Fast, easy serialization library for Unity? 0 Answers
Unity Not Loading 0 Answers