Unity中PlayerEquipment.Equipment存档加载异常问题
Unity存档加载异常问题
我在Unity开发中遇到了存档加载的诡异问题:有两个List<Item>变量(items、playerEquipment.equipment),尝试同时保存和加载,但表现不一致:items始终能正常保存加载,但playerEquipment.equipment只有在保存后不退出Play模式直接加载才能得到正确结果;如果保存后退出Play模式再重新进入加载,得到的就是全为null的列表。
存档代码
public void SavePlayer() { SaveData data = new SaveData(); data.level = level; data.nick = nick; data.experience = experience; data.experienceToNextLevel = experienceToNextLevel; data.maxHP = maxHP; data.minAttack = minAttack; data.maxAttack = maxAttack; data.coins = coins; data.items = items; data.equipment = playerEquipment.equipment; for (int i = 0; i < data.equipment.Count; i++) { Debug.Log("Saved type " + data.equipment[i].type + " with id " + data.equipment[i].id+" and type "+ data.equipment[i].type); //Save data from PlayerInfo to a file named players DataSaver.saveData(data, "players"); } }
加载代码
public void LoadPlayer() { SaveData data = DataSaver.loadData<SaveData>("players"); if (data == null) { Debug.Log("ERROR: data not loaded"); return; } level = data.level; nick = data.nick; experience = data.experience; experienceToNextLevel = data.experienceToNextLevel; maxHP = data.maxHP; currentHP = data.maxHP; minAttack = data.minAttack; maxAttack = data.maxAttack; coins = data.coins; items = data.items; playerEquipment.equipment = data.equipment; }
SaveData类定义
[Serializable] class SaveData { //all data types and names that go to save public int level; public string nick; public int experience; public int experienceToNextLevel; public int maxHP; public float minAttack; public float maxAttack; public int coins; //public List<String> itemsString; //public List<String> equipmentString; public List<Item> items; public List<Item> equipment; }
Item类定义
public enum ItemType { HELMET, SHOULDERS, WEAPON_MAIN, WEAPON_SECOND, BODY, ARMOR, HANDS, PANTS, BOOTS } [CreateAssetMenu(menuName = "item")] [Serializable] public class Item : ScriptableObject { public int id; public Sprite sprite; public string itemName; public ItemType type; }
内容的提问来源于stack exchange,提问作者dgleming
相关产品推荐
相关产品推荐

