Bird
Raised Fist0
Unityframework~10 mins

PlayerPrefs for simple data in Unity - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - PlayerPrefs for simple data
Start
↓
Set Key-Value
↓
Save Data
↓
Retrieve Data
↓
Use Data in Game
↓
End
PlayerPrefs stores simple data as key-value pairs, saving and retrieving values for game use.
Execution Sample
Unity
PlayerPrefs.SetInt("score", 10);
PlayerPrefs.Save();
int score = PlayerPrefs.GetInt("score", 0);
Debug.Log(score);
This code saves an integer score of 10 and then retrieves and prints it.
Execution Table
StepActionKeyValueResult/Output
1SetInt calledscore10Value stored in PlayerPrefs memory
2Save called--Data saved to disk
3GetInt calledscore-Returns 10
4Debug.Log called--Prints 10 to Console
5End--Execution complete
💡 All steps complete, data saved and retrieved successfully.
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3Final
scoreundefined10 (in PlayerPrefs memory)10 (saved)10 (retrieved)10 (used)
Key Moments - 2 Insights
Why do we call PlayerPrefs.Save() after SetInt?
PlayerPrefs.SetInt stores data in memory, but PlayerPrefs.Save writes it to disk. Without Save, data might not persist after the game closes (see execution_table step 2).
What happens if the key does not exist when calling GetInt?
GetInt returns the default value provided (0 in this example). This prevents errors and ensures a known value (refer to execution_table step 3).
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what value does GetInt return at step 3?
A0
B10
Cnull
DError
💡 Hint
Check the 'Result/Output' column at step 3 in the execution_table.
At which step is the data actually saved to disk?
AStep 2
BStep 1
CStep 3
DStep 4
💡 Hint
Look for the action 'Save called' in the execution_table.
If we skip PlayerPrefs.Save(), what might happen?
AData is saved anyway
BGame crashes
CData is lost when game closes
DData doubles
💡 Hint
Refer to key_moments explanation about Save importance.
Concept Snapshot
PlayerPrefs stores simple data as key-value pairs.
Use SetInt, SetFloat, SetString to save data.
Call PlayerPrefs.Save() to write data to disk.
Use GetInt, GetFloat, GetString to retrieve data with a default.
Good for small, simple game settings or scores.
Full Transcript
PlayerPrefs is a Unity feature to save simple data like numbers or text. You store data by giving it a key name and a value using SetInt, SetFloat, or SetString. After setting data, you call PlayerPrefs.Save() to make sure it is saved on the device. Later, you can get the data back using GetInt, GetFloat, or GetString by using the same key. If the key does not exist, you get a default value you provide. This is useful for saving scores, settings, or small pieces of information between game sessions.

Practice

(1/5)
1. What is the main purpose of PlayerPrefs in Unity?
easy
A. To create 3D models in the game
B. To manage game physics calculations
C. To handle player input controls
D. To save small data like numbers and text between game sessions

Solution

  1. Step 1: Understand PlayerPrefs role

    PlayerPrefs is designed to store simple data like numbers and text that persist between game sessions.
  2. Step 2: Compare options with PlayerPrefs purpose

    Options A, C, and D relate to other game systems, not data storage.
  3. Final Answer:

    To save small data like numbers and text between game sessions -> Option D
  4. Quick Check:

    PlayerPrefs stores simple data = B [OK]
Hint: PlayerPrefs saves small data between sessions [OK]
Common Mistakes:
  • Confusing PlayerPrefs with input or physics systems
  • Thinking PlayerPrefs handles large files or complex data
2. Which of the following is the correct way to save an integer value 10 with key "score" using PlayerPrefs?
easy
A. PlayerPrefs.SetInt("score", 10);
B. PlayerPrefs.SaveInt("score", 10);
C. PlayerPrefs.Set("score", 10);
D. PlayerPrefs.PutInt("score", 10);

Solution

  1. Step 1: Recall PlayerPrefs method for integers

    The correct method to save an integer is SetInt with key and value.
  2. Step 2: Check method names in options

    Only PlayerPrefs.SetInt("score", 10); uses the correct method name SetInt. Others use invalid method names.
  3. Final Answer:

    PlayerPrefs.SetInt("score", 10); -> Option A
  4. Quick Check:

    SetInt saves integer = A [OK]
Hint: Use SetInt to save integers in PlayerPrefs [OK]
Common Mistakes:
  • Using incorrect method names like Set or PutInt
  • Forgetting to use quotes around the key string
3. What will be the output of this code snippet?
PlayerPrefs.SetString("playerName", "Alex");
string name = PlayerPrefs.GetString("playerName", "Unknown");
Debug.Log(name);
medium
A. Unknown
B. Error
C. Alex
D. null

Solution

  1. Step 1: Understand SetString and GetString usage

    The code saves "Alex" with key "playerName" and then retrieves it with a default value "Unknown".
  2. Step 2: Determine what GetString returns

    Since "playerName" exists, GetString returns "Alex", not the default "Unknown".
  3. Final Answer:

    Alex -> Option C
  4. Quick Check:

    GetString returns saved value = D [OK]
Hint: GetString returns saved value if key exists [OK]
Common Mistakes:
  • Assuming default value is always returned
  • Confusing SetString with SetInt or other methods
4. Identify the error in this code snippet:
PlayerPrefs.SetInt("level", 5);
int currentLevel = PlayerPrefs.GetInt("Level", 1);
Debug.Log(currentLevel);
medium
A. Key names are case-sensitive, causing default value to be returned
B. SetInt cannot be used for integers
C. GetInt requires a string key and an integer default value
D. PlayerPrefs.Save() is missing, so data won't save

Solution

  1. Step 1: Compare key names used in SetInt and GetInt

    SetInt uses key "level" (lowercase), GetInt uses "Level" (uppercase L). Keys are case-sensitive.
  2. Step 2: Understand effect of key mismatch

    Because keys differ, GetInt does not find "Level" and returns default 1 instead of 5.
  3. Final Answer:

    Key names are case-sensitive, causing default value to be returned -> Option A
  4. Quick Check:

    Case-sensitive keys cause mismatch = C [OK]
Hint: Check key spelling and case carefully [OK]
Common Mistakes:
  • Ignoring case sensitivity of keys
  • Thinking PlayerPrefs.Save() is always required immediately
5. You want to save a player's high score and retrieve it later. Which sequence of code correctly saves the score 150 and then loads it with a default of 0 if not found?
hard
A. PlayerPrefs.SetString("highScore", "150"); int score = PlayerPrefs.GetInt("highScore", 0);
B. PlayerPrefs.SetInt("highScore", 150); PlayerPrefs.Save(); int score = PlayerPrefs.GetInt("highScore", 0);
C. PlayerPrefs.SetInt(150, "highScore"); int score = PlayerPrefs.GetInt("highScore");
D. PlayerPrefs.SetInt("highScore", 150); int score = PlayerPrefs.GetInt("highScore", 100); PlayerPrefs.Save();

Solution

  1. Step 1: Save the high score correctly

    Use SetInt with key "highScore" and value 150, then call PlayerPrefs.Save() to ensure data is saved immediately.
  2. Step 2: Retrieve the high score with default

    Use GetInt with key "highScore" and default 0 to load the saved score or 0 if not found.
  3. Final Answer:

    PlayerPrefs.SetInt("highScore", 150); PlayerPrefs.Save(); int score = PlayerPrefs.GetInt("highScore", 0); -> Option B
  4. Quick Check:

    SetInt + Save + GetInt with default = A [OK]
Hint: Save with SetInt + Save(), load with GetInt and default [OK]
Common Mistakes:
  • Mixing SetString with GetInt causing type mismatch
  • Not calling PlayerPrefs.Save() after setting data
  • Swapping key and value parameters
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard