예제 #1
0
        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]);
            }
        }
예제 #2
0
            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);
            }