public static void Load() { Debug.Log("Loading..."); serializableDataSet.data.Clear(); CryptographyInfo.Decrypt(FilePath, fileFormat); Debug.Log(FilePath); JsonUtility.FromJsonOverwrite(File.ReadAllText(FilePath), serializableDataSet); for (int i = 0; i < serializableDataSet.data.Count; i++) { for (int j = 0; j < gameObjectsDataSet.Count; j++) { QueuedItem queuedItem = gameObjectsDataSet[j]; string sID = (string)DataDeserialization.Deserialize(serializableDataSet.data[i].ID); Debug.Log("Comparing ID: " + queuedItem.ID + " to sID: " + sID); if (queuedItem.ID == sID) { Debug.Log("Loading on item: " + queuedItem.saveObject.name + " with an ID of: " + queuedItem.ID); #region Deserialize Unity classes and types #region Deserialize transform ((STransform)DataDeserialization.Deserialize(serializableDataSet.data[i].unitySerializableData.sTransform)).Deserialize(ref queuedItem.saveObject); #endregion #region Deserialize Camera if (serializableDataSet.data[i].unitySerializableData.sCamera.Length > 0) { ((SCamera)DataDeserialization.Deserialize(serializableDataSet.data[i].unitySerializableData.sCamera)).Deserialize(ref queuedItem.saveObject); } #endregion #region Deserialize Audio if (serializableDataSet.data[i].unitySerializableData.sAudioChorusFilter.Length > 0) { ((SAudioChorusFilter)DataDeserialization.Deserialize(serializableDataSet.data[i].unitySerializableData.sAudioChorusFilter)).Deserialize(ref queuedItem.saveObject); } if (serializableDataSet.data[i].unitySerializableData.sAudioDistortionFilter.Length > 0) { SAudioDistortionFilter sAudioDistortionFilter = (SAudioDistortionFilter)DataDeserialization.Deserialize(serializableDataSet.data[i].unitySerializableData.sAudioDistortionFilter); sAudioDistortionFilter.Deserialize(ref queuedItem.saveObject); } if (serializableDataSet.data[i].unitySerializableData.sAudioEchoFilter.Length > 0) { ((SAudioEchoFilter)DataDeserialization.Deserialize(serializableDataSet.data[i].unitySerializableData.sAudioEchoFilter)).Deserialize(ref queuedItem.saveObject); } if (serializableDataSet.data[i].unitySerializableData.sAudioHighPassFilter.Length > 0) { ((SAudioHighPassFilter)DataDeserialization.Deserialize(serializableDataSet.data[i].unitySerializableData.sAudioHighPassFilter)).Deserialize(ref queuedItem.saveObject); } if (serializableDataSet.data[i].unitySerializableData.sAudioListener.Length > 0) { ((SAudioListener)DataDeserialization.Deserialize(serializableDataSet.data[i].unitySerializableData.sAudioListener)).Deserialize(ref queuedItem.saveObject); } if (serializableDataSet.data[i].unitySerializableData.sAudioLowPassFilter.Length > 0) { ((SAudioLowPassFilter)DataDeserialization.Deserialize(serializableDataSet.data[i].unitySerializableData.sAudioLowPassFilter)).Deserialize(ref queuedItem.saveObject); } if (serializableDataSet.data[i].unitySerializableData.sAudioReverbFilter.Length > 0) { ((SAudioReverbFilter)DataDeserialization.Deserialize(serializableDataSet.data[i].unitySerializableData.sAudioReverbFilter)).Deserialize(ref queuedItem.saveObject); } if (serializableDataSet.data[i].unitySerializableData.sAudioReverbZone.Length > 0) { ((SAudioReverbZone)DataDeserialization.Deserialize(serializableDataSet.data[i].unitySerializableData.sAudioReverbZone)).Deserialize(ref queuedItem.saveObject); } if (serializableDataSet.data[i].unitySerializableData.sAudioSource.Length > 0) { ((SAudioSource)DataDeserialization.Deserialize(serializableDataSet.data[i].unitySerializableData.sAudioSource)).Deserialize(ref queuedItem.saveObject); } #endregion #region Deserialize Effects if (serializableDataSet.data[i].unitySerializableData.sLensFlare.Length > 0) { ((SLensFlare)DataDeserialization.Deserialize(serializableDataSet.data[i].unitySerializableData.sLensFlare)).Deserialize(ref queuedItem.saveObject); } if (serializableDataSet.data[i].unitySerializableData.sLineRenderer.Length > 0) { ((SLineRenderer)DataDeserialization.Deserialize(serializableDataSet.data[i].unitySerializableData.sLineRenderer)).Deserialize(ref queuedItem.saveObject); } if (serializableDataSet.data[i].unitySerializableData.sParticleSystem.Length > 0) { ((SParticleSystem)DataDeserialization.Deserialize(serializableDataSet.data[i].unitySerializableData.sParticleSystem)).Deserialize(ref queuedItem.saveObject); } if (serializableDataSet.data[i].unitySerializableData.sProjector.Length > 0) { ((SProjector)DataDeserialization.Deserialize(serializableDataSet.data[i].unitySerializableData.sProjector)).Deserialize(ref queuedItem.saveObject); } if (serializableDataSet.data[i].unitySerializableData.sTrailRenderer.Length > 0) { ((STrailRenderer)DataDeserialization.Deserialize(serializableDataSet.data[i].unitySerializableData.sTrailRenderer)).Deserialize(ref queuedItem.saveObject); } #endregion #endregion #region Deserialize User Defined Classes MonoBehaviour[] saveableScripts = queuedItem.saveObject.GetComponents <MonoBehaviour>(); foreach (var monoItem in saveableScripts) { if (monoItem is IUniversalSerializedPersistenceSystem == false) { continue; } System.Type thisType = monoItem.GetType(); MethodInfo theMethod = thisType.GetMethod("Deserialize"); object[] param = new object[2] { serializableDataSet.data[i].serializedScripts, queuedItem.saveObject }; theMethod.Invoke(monoItem, param); break; } #endregion #region Deserialize All Children int childIndex = -1; QueueData.DequeueAllChildren(queuedItem.saveObject.transform, queuedItem.saveObject.transform, serializableDataSet.data[i], ref childIndex); #endregion gameObjectsDataSet.RemoveAt(j); break; } } } serializableDataSet.data.Clear();; gameObjectsDataSet.Clear(); CryptographyInfo.Encrypt(FilePath, fileFormat); Debug.Log("Load was successful!"); }
public static void DequeueAllChildren(Transform rootParent, Transform parent, SerializableData serializableData, ref int childIndex) { foreach (Transform t in parent) { if (serializableData.serializableChildData.Count == 0) { break; } SerializableChildData serializableChildData = serializableData.serializableChildData[++childIndex]; GameObject currentObj = t.gameObject; #region Deserialize Unity classes and types #region Deserialize transform ((STransform)DataDeserialization.Deserialize(serializableChildData.unitySerializableData.sTransform)).Deserialize(ref currentObj); #endregion #region Deserialize Camera if (serializableChildData.unitySerializableData.sCamera.Length > 0) { ((SCamera)DataDeserialization.Deserialize(serializableChildData.unitySerializableData.sCamera)).Deserialize(ref currentObj); } #endregion #region Deserialize Audio if (serializableChildData.unitySerializableData.sAudioChorusFilter.Length > 0) { ((SAudioChorusFilter)DataDeserialization.Deserialize(serializableChildData.unitySerializableData.sAudioChorusFilter)).Deserialize(ref currentObj); } if (serializableChildData.unitySerializableData.sAudioDistortionFilter.Length > 0) { SAudioDistortionFilter sAudioDistortionFilter = (SAudioDistortionFilter)DataDeserialization.Deserialize(serializableChildData.unitySerializableData.sAudioDistortionFilter); sAudioDistortionFilter.Deserialize(ref currentObj); } if (serializableChildData.unitySerializableData.sAudioEchoFilter.Length > 0) { ((SAudioEchoFilter)DataDeserialization.Deserialize(serializableChildData.unitySerializableData.sAudioEchoFilter)).Deserialize(ref currentObj); } if (serializableChildData.unitySerializableData.sAudioHighPassFilter.Length > 0) { ((SAudioHighPassFilter)DataDeserialization.Deserialize(serializableChildData.unitySerializableData.sAudioHighPassFilter)).Deserialize(ref currentObj); } if (serializableChildData.unitySerializableData.sAudioListener.Length > 0) { ((SAudioListener)DataDeserialization.Deserialize(serializableChildData.unitySerializableData.sAudioListener)).Deserialize(ref currentObj); } if (serializableChildData.unitySerializableData.sAudioLowPassFilter.Length > 0) { ((SAudioLowPassFilter)DataDeserialization.Deserialize(serializableChildData.unitySerializableData.sAudioLowPassFilter)).Deserialize(ref currentObj); } if (serializableChildData.unitySerializableData.sAudioReverbFilter.Length > 0) { ((SAudioReverbFilter)DataDeserialization.Deserialize(serializableChildData.unitySerializableData.sAudioReverbFilter)).Deserialize(ref currentObj); } if (serializableChildData.unitySerializableData.sAudioReverbZone.Length > 0) { ((SAudioReverbZone)DataDeserialization.Deserialize(serializableChildData.unitySerializableData.sAudioReverbZone)).Deserialize(ref currentObj); } if (serializableChildData.unitySerializableData.sAudioSource.Length > 0) { ((SAudioSource)DataDeserialization.Deserialize(serializableChildData.unitySerializableData.sAudioSource)).Deserialize(ref currentObj); } #endregion #region Deserialize Effects if (serializableChildData.unitySerializableData.sLensFlare.Length > 0) { ((SLensFlare)DataDeserialization.Deserialize(serializableChildData.unitySerializableData.sLensFlare)).Deserialize(ref currentObj); } if (serializableChildData.unitySerializableData.sLineRenderer.Length > 0) { ((SLineRenderer)DataDeserialization.Deserialize(serializableChildData.unitySerializableData.sLineRenderer)).Deserialize(ref currentObj); } if (serializableChildData.unitySerializableData.sParticleSystem.Length > 0) { ((SParticleSystem)DataDeserialization.Deserialize(serializableChildData.unitySerializableData.sParticleSystem)).Deserialize(ref currentObj); } if (serializableChildData.unitySerializableData.sProjector.Length > 0) { ((SProjector)DataDeserialization.Deserialize(serializableChildData.unitySerializableData.sProjector)).Deserialize(ref currentObj); } if (serializableChildData.unitySerializableData.sTrailRenderer.Length > 0) { ((STrailRenderer)DataDeserialization.Deserialize(serializableChildData.unitySerializableData.sTrailRenderer)).Deserialize(ref currentObj); } #endregion #endregion #region Deserialize User Defined Classes MonoBehaviour[] saveableScripts = parent.gameObject.GetComponents <MonoBehaviour>(); foreach (var monoItem in saveableScripts) { if (monoItem is IUniversalSerializedPersistenceSystem == false) { continue; } System.Type thisType = monoItem.GetType(); MethodInfo theMethod = thisType.GetMethod("Deserialize"); object[] param = new object[2] { serializableChildData.serializedScripts, currentObj }; theMethod.Invoke(monoItem, param); break; } #endregion #region Deserialize All Children DequeueAllChildren(rootParent, t, serializableData, ref childIndex); #endregion } }