override public void Load(LevelGoalData data) { CollectedGoalData casted = data as CollectedGoalData; if (casted != null) { int count = casted.goalPrefabs.Count; collectionGoals = new CollectionGoal[count]; for (int i = 0; i < count; i++) { CollectionGoal g = new GameObject().AddComponent <CollectionGoal>(); g.transform.parent = transform; g.prefabToCollect = casted.goalPrefabs[i]; g.numberToCollect = casted.goalQuantities[i]; collectionGoals[i] = g; } } base.Load(data); }
override public LevelGoalData ForSave() { CollectedGoalData data = new CollectedGoalData(); data.goalPrefabs = new List <GamePiece>(); data.goalQuantities = new List <int>(); if (collectionGoals == null || collectionGoals.Length == 0) { collectionGoals = GetComponentsInChildren <CollectionGoal>(); } for (var i = 0; i < collectionGoals.Length; i++) { data.goalPrefabs.Add(collectionGoals[i].prefabToCollect); data.goalQuantities.Add(collectionGoals[i].numberToCollect); } data = BaseForSave(data) as CollectedGoalData; return(data); }