Bird
Raised Fist0
Unityframework~5 mins

File-based save system in Unity - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a file-based save system in Unity?
A file-based save system stores game data by writing it to files on the device's storage. This allows the game to save and load player progress or settings between sessions.
Click to reveal answer
beginner
Which Unity class is commonly used to write and read text files for saving data?
The <code>System.IO.File</code> class is commonly used to write and read text files in Unity for saving and loading data.
Click to reveal answer
beginner
Why is JSON a popular format for saving game data in Unity?
JSON is easy to read and write, human-readable, and supported by Unity's JsonUtility class, making it simple to convert game data to and from strings for file storage.
Click to reveal answer
beginner
What is the purpose of Application.persistentDataPath in Unity?
Application.persistentDataPath gives a safe folder path where you can save files that persist between game sessions and are not deleted when the app updates.
Click to reveal answer
intermediate
How do you ensure data is saved safely when writing to a file in Unity?
You can write data to a temporary file first, then replace the original file. Also, use try-catch blocks to handle errors and avoid corrupting save files.
Click to reveal answer
Which Unity method converts an object to a JSON string for saving?
AJsonUtility.ToJson()
BFile.WriteAllText()
CApplication.persistentDataPath
DPlayerPrefs.SetString()
Where should you save files to ensure they persist on all platforms in Unity?
AApplication.temporaryCachePath
BApplication.streamingAssetsPath
CApplication.dataPath
DApplication.persistentDataPath
Which namespace provides classes for file operations in Unity?
AUnityEngine.UI
BSystem.IO
CUnityEditor
DSystem.Net
What is a common risk when writing save files directly without error handling?
ASave file corruption
BSlower game performance
CGame crashes on start
DIncreased memory usage
Which method reads all text from a file in Unity?
APlayerPrefs.GetString()
BFile.WriteAllText()
CFile.ReadAllText()
DJsonUtility.FromJson()
Explain how to save and load game data using a file-based save system in Unity.
Think about file location, converting data to string, and reading it back.
You got /5 concepts.
    What are best practices to avoid corrupting save files when writing data in Unity?
    Consider error handling and safe file replacement.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of using a file-based save system in Unity games?
      easy
      A. To store game data on the device so progress is not lost
      B. To improve game graphics performance
      C. To increase the game's frame rate
      D. To connect the game to online multiplayer servers

      Solution

      1. Step 1: Understand the role of saving data

        Saving data means keeping player progress or settings so they are not lost when the game closes.
      2. Step 2: Identify file-based save system purpose

        A file-based save system stores this data on the device's storage, allowing the game to load it later.
      3. Final Answer:

        To store game data on the device so progress is not lost -> Option A
      4. Quick Check:

        Save system = store progress [OK]
      Hint: Saving means keeping progress on device storage [OK]
      Common Mistakes:
      • Confusing saving with graphics or performance
      • Thinking saving connects to online servers
      • Assuming saving only affects frame rate
      2. Which of the following is the correct way to write text data to a file in Unity using C#?
      easy
      A. File.WriteAllText(Application.persistentDataPath + "/savefile.txt", data);
      B. File.ReadAllText(Application.persistentDataPath + "/savefile.txt", data);
      C. File.WriteText(Application.dataPath + "/savefile.txt", data);
      D. File.SaveText(Application.persistentDataPath + "/savefile.txt", data);

      Solution

      1. Step 1: Identify the correct method to write text

        The method to write text to a file is File.WriteAllText.
      2. Step 2: Use the correct file path

        Application.persistentDataPath is the safe path for saving files on the device.
      3. Final Answer:

        File.WriteAllText(Application.persistentDataPath + "/savefile.txt", data); -> Option A
      4. Quick Check:

        WriteAllText + persistentDataPath = correct save [OK]
      Hint: Use File.WriteAllText with persistentDataPath to save [OK]
      Common Mistakes:
      • Using File.ReadAllText to write data
      • Using Application.dataPath which is not safe for saving
      • Using non-existent methods like File.SaveText
      3. What will be the output of the following code snippet if the file contains '{"score": 100}'?
      string path = Application.persistentDataPath + "/savefile.json";
      string json = File.ReadAllText(path);
      PlayerData data = JsonUtility.FromJson<PlayerData>(json);
      Debug.Log(data.score);
      Assuming PlayerData is a class with a public int score field.
      medium
      A. null
      B. 0
      C. Error: File not found
      D. 100

      Solution

      1. Step 1: Read JSON string from file

        The file contains '{"score": 100}', so json will hold this string.
      2. Step 2: Deserialize JSON to PlayerData object

        JsonUtility.FromJson<PlayerData>(json) creates an object with score = 100.
      3. Step 3: Output the score field

        Debug.Log(data.score) prints 100 to the console.
      4. Final Answer:

        100 -> Option D
      5. Quick Check:

        Deserialize JSON score = 100 [OK]
      Hint: JsonUtility.FromJson reads JSON into object fields [OK]
      Common Mistakes:
      • Assuming score is zero if not initialized
      • Confusing ReadAllText with WriteAllText
      • Expecting null instead of a valid object
      4. Identify the error in this code snippet for saving player data:
      PlayerData data = new PlayerData();
      data.score = 50;
      string json = JsonUtility.ToJson(data);
      File.WriteAllText("savefile.json", json);
      medium
      A. PlayerData.score must be private
      B. Missing Application.persistentDataPath in file path
      C. File.WriteAllText requires a byte array, not string
      D. JsonUtility.ToJson cannot serialize PlayerData

      Solution

      1. Step 1: Check file path usage

        The code writes to "savefile.json" without specifying a full path, which may cause saving in an unsafe or unexpected location.
      2. Step 2: Use Application.persistentDataPath for safe saving

        Unity recommends using Application.persistentDataPath + "/savefile.json" to save files safely on all platforms.
      3. Final Answer:

        Missing Application.persistentDataPath in file path -> Option B
      4. Quick Check:

        Always use persistentDataPath for file saving [OK]
      Hint: Always include persistentDataPath in file paths [OK]
      Common Mistakes:
      • Saving files without full path causes errors
      • Thinking JsonUtility cannot serialize simple classes
      • Confusing WriteAllText input types
      5. You want to save multiple player stats (score, level, health) in a file and load them later. Which approach correctly combines JSON serialization and file saving in Unity?
      hard
      A. Save each stat as a separate text file using File.WriteAllText without JSON
      B. Serialize stats manually to a string and save using File.ReadAllText
      C. Create a PlayerStats class with fields, serialize it with JsonUtility.ToJson, then save with File.WriteAllText using Application.persistentDataPath
      D. Use JsonUtility.FromJson to save data and File.WriteAllText to load data

      Solution

      1. Step 1: Use a class to hold multiple stats

        A class like PlayerStats with fields score, level, health organizes data for easy serialization.
      2. Step 2: Serialize and save correctly

        JsonUtility.ToJson converts the class to JSON string; File.WriteAllText with Application.persistentDataPath saves it safely.
      3. Final Answer:

        Create a PlayerStats class with fields, serialize it with JsonUtility.ToJson, then save with File.WriteAllText using Application.persistentDataPath -> Option C
      4. Quick Check:

        Class + JsonUtility + WriteAllText + persistentDataPath = correct [OK]
      Hint: Use class + JsonUtility + persistentDataPath to save/load data [OK]
      Common Mistakes:
      • Saving stats separately without JSON causes complexity
      • Mixing up ReadAllText and WriteAllText roles
      • Using FromJson for saving instead of loading
      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