public void ApplySaveData(SaveService.SavedGameObject savedData) { if (savedData.savedData.ContainsKey(TransformSaveData.Key)) { TransformSaveData.ApplySaveData(gameObject.transform, (TransformSaveData)savedData.savedData[TransformSaveData.Key]); } if (savedData.savedData.ContainsKey(RigidBodySaveData.Key)) { RigidBodySaveData.ApplySaveData(gameObject.GetComponent <Rigidbody>(), (RigidBodySaveData)savedData.savedData[RigidBodySaveData.Key]); } if (savedData.savedData.ContainsKey(AnimatorSaveData.Key)) { AnimatorSaveData.ApplySaveData(gameObject.GetComponent <Animator>(), (AnimatorSaveData)savedData.savedData[AnimatorSaveData.Key]); } foreach (ISaveableObject saveObject in GetComponents <ISaveableObject>()) { if (!savedData.savedData.ContainsKey(saveObject.SaveDataKey)) { continue; } saveObject.ApplySaveData(savedData.savedData[saveObject.SaveDataKey]); } }
public static void ApplySaveData(Animator animator, AnimatorSaveData data) { for (int i = 0; i < data.savedParams.Length; i++) { data.savedParams[i].ApplyParameter(animator); } for (int i = 0; i < data.savedLayers.Length; i++) { data.savedLayers[i].ApplyState(animator, i); } animator.Update(Time.fixedDeltaTime); }