public void LoadFarmSlots() { if (File.Exists(Application.persistentDataPath + PATH_FARM_SLOTS)) { BinaryFormatter bf = new BinaryFormatter(); FileStream file = File.Open(Application.persistentDataPath + PATH_FARM_SLOTS, FileMode.Open); List <FarmSlotSave> farmSlotSaves = (List <FarmSlotSave>)bf.Deserialize(file); file.Close(); int iter = 0; int farmSlotIndex = 0; int subFarmIndex = 0; int farmSlotSavesCount = farmSlotSaves.Count; /*foreach (FarmSlotSave farmSlot in farmSlotSaves) { * Debug.Log(string.Format("FarmSlot : SubFarm #{0}, FarmSlot #{1}, PlantModelID #{2}," + * " IsRotten? {3}, CurrentState {4}, CurrentDayPass {5}", * farmSlot.subFarmIndex, farmSlot.farmSlotIndex, farmSlot.plantModelID, * farmSlot.isRotten, farmSlot.currentState, farmSlot.currentDayPass)); * }*/ foreach (Transform child in farm.transform) { farmSlotIndex = 0; if (child.gameObject.GetComponent <SubFarm>()) { foreach (Transform grandChild in child.gameObject.transform) { FarmSlot farmSlot = grandChild.gameObject.GetComponent <FarmSlot>(); if (farmSlot) { if (iter < farmSlotSavesCount && farmSlotSaves[iter].farmSlotIndex == farmSlotIndex && farmSlotSaves[iter].subFarmIndex == subFarmIndex) { farmSlot.SetPlantFromSave(farmSlotSaves[iter].plantModelID, farmSlotSaves[iter].isRotten, farmSlotSaves[iter].currentState, farmSlotSaves[iter].currentDayPass); iter++; } else { farmSlot.RemovePlant(false); } farmSlotIndex++; } } subFarmIndex++; } } } else { //Debug.LogWarning("SaveLoadController.LoadFarmSlot : " + Application.persistentDataPath + PATH_FARM_SLOTS + " not found."); } }