Performance: Variables and serialization
This concept affects how data is stored and loaded in Unity, impacting load times and memory usage during gameplay.
[System.Serializable] public class PlayerData { public int health; public string playerName; public List<Item> inventory; } // Using Unity's JsonUtility for serialization string json = JsonUtility.ToJson(playerData); File.WriteAllText(path, json);
public class PlayerData { public int health; public string playerName; public List<Item> inventory; } // Using BinaryFormatter for serialization BinaryFormatter bf = new BinaryFormatter(); FileStream file = File.Create(path); bf.Serialize(file, playerData); file.Close();
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| BinaryFormatter serialization | N/A | N/A | N/A | [X] Bad |
| Unity JsonUtility serialization | N/A | N/A | N/A | [OK] Good |
using UnityEngine;
public class PlayerData {
public string playerName = "Alex";
public int level = 5;
}
public class Test : MonoBehaviour {
void Start() {
PlayerData data = new PlayerData();
string json = JsonUtility.ToJson(data);
Debug.Log(json);
}
}using UnityEngine;
public class Player {
public int score;
}
public class Game : MonoBehaviour {
void Start() {
Player player = new Player();
string json = JsonUtility.ToJson(player);
Debug.Log(json);
}
}Pass the test and this pattern moves unknown