From 8450f1579805cd622c9adf5e4a6b5bfa6d95910b Mon Sep 17 00:00:00 2001 From: Ankur Shrivastava Date: Mon, 19 Jan 2015 13:40:38 +0530 Subject: [PATCH 1/5] preserve animation events --- .../ThirdParty/Spriter2Unity/Editor/Unity/AnimationBuilder.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Assets/ThirdParty/Spriter2Unity/Editor/Unity/AnimationBuilder.cs b/Assets/ThirdParty/Spriter2Unity/Editor/Unity/AnimationBuilder.cs index 5363ae6..de41775 100644 --- a/Assets/ThirdParty/Spriter2Unity/Editor/Unity/AnimationBuilder.cs +++ b/Assets/ThirdParty/Spriter2Unity/Editor/Unity/AnimationBuilder.cs @@ -71,6 +71,8 @@ public List BuildAnimationClips(GameObject root, Entity entity, s if (originalAnimClip != null) { Debug.Log("Replacing animation clip " + animClip.name); + AnimationEvent[] events = AnimationUtility.GetAnimationEvents(originalAnimClip); + AnimationUtility.SetAnimationEvents(animClip, events); EditorUtility.CopySerialized(animClip, originalAnimClip); allAnimClips.Remove(originalAnimClip); } From 07e38b29b61e12a5a384d22992600880c74aece9 Mon Sep 17 00:00:00 2001 From: Alaa-eddine Date: Mon, 23 Feb 2015 00:44:36 +0100 Subject: [PATCH 2/5] Unity 5 compatibility --- .../Spriter2Unity/Editor/Unity/AnimationBuilder.cs | 4 ++++ .../Spriter2Unity/Editor/Unity/ScmlPostProcessor.cs | 6 +++++- .../Spriter2Unity/Editor/Utils/AnimationCurveUtils.cs | 5 +++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/Assets/ThirdParty/Spriter2Unity/Editor/Unity/AnimationBuilder.cs b/Assets/ThirdParty/Spriter2Unity/Editor/Unity/AnimationBuilder.cs index de41775..85e86f6 100644 --- a/Assets/ThirdParty/Spriter2Unity/Editor/Unity/AnimationBuilder.cs +++ b/Assets/ThirdParty/Spriter2Unity/Editor/Unity/AnimationBuilder.cs @@ -102,8 +102,12 @@ public AnimationClip MakeAnimationClip(GameObject root, Animation animation, str var animClip = new AnimationClip(); animClip.name = animation.Name; +#if UNITY_5 + //Not needed in Unity 5 ?? +#else //Set clip to Generic type AnimationUtility.SetAnimationType(animClip, ModelImporterAnimationType.Generic); +#endif //Populate the animation curves & events MakeAnimationCurves(root, animClip, animation); diff --git a/Assets/ThirdParty/Spriter2Unity/Editor/Unity/ScmlPostProcessor.cs b/Assets/ThirdParty/Spriter2Unity/Editor/Unity/ScmlPostProcessor.cs index c5b4535..f1f8126 100644 --- a/Assets/ThirdParty/Spriter2Unity/Editor/Unity/ScmlPostProcessor.cs +++ b/Assets/ThirdParty/Spriter2Unity/Editor/Unity/ScmlPostProcessor.cs @@ -123,7 +123,11 @@ static void ImportScml(string assetPath) { if (animationClip) { - AnimatorController.AddAnimationClipToController(controller, animationClip); +#if UNITY_5 + controller.AddMotion(animationClip); +#else + AnimatorController.AddAnimationClipToController(controller, animationClip); +#endif } } } diff --git a/Assets/ThirdParty/Spriter2Unity/Editor/Utils/AnimationCurveUtils.cs b/Assets/ThirdParty/Spriter2Unity/Editor/Utils/AnimationCurveUtils.cs index 7c363bb..bbd4eed 100644 --- a/Assets/ThirdParty/Spriter2Unity/Editor/Utils/AnimationCurveUtils.cs +++ b/Assets/ThirdParty/Spriter2Unity/Editor/Utils/AnimationCurveUtils.cs @@ -190,8 +190,13 @@ public static void SetAnimationSettings(this AnimationClip animClip, AnimationCl { //Use reflection to get the internal method BindingFlags bindingFlags = BindingFlags.Static | BindingFlags.NonPublic; +#if UNITY_5 + BindingFlags bindingFlags = BindingFlags.Static | BindingFlags.NonPublic; + AnimationUtility.SetAnimationClipSettings(animClip, settings); +#else MethodInfo mInfo = typeof(AnimationUtility).GetMethod("SetAnimationClipSettings", bindingFlags); mInfo.Invoke(null, new object[] { animClip, settings }); +#endif } } } From 804a5fe84c37a77f045db646cb24b805475aca9d Mon Sep 17 00:00:00 2001 From: Alaa-eddine Date: Mon, 23 Feb 2015 00:47:26 +0100 Subject: [PATCH 3/5] Unity 5 compatibility --- .../ThirdParty/Spriter2Unity/Editor/Unity/AnimationBuilder.cs | 2 +- .../ThirdParty/Spriter2Unity/Editor/Unity/ScmlPostProcessor.cs | 2 +- .../Spriter2Unity/Editor/Utils/AnimationCurveUtils.cs | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Assets/ThirdParty/Spriter2Unity/Editor/Unity/AnimationBuilder.cs b/Assets/ThirdParty/Spriter2Unity/Editor/Unity/AnimationBuilder.cs index 85e86f6..89ddc02 100644 --- a/Assets/ThirdParty/Spriter2Unity/Editor/Unity/AnimationBuilder.cs +++ b/Assets/ThirdParty/Spriter2Unity/Editor/Unity/AnimationBuilder.cs @@ -103,7 +103,7 @@ public AnimationClip MakeAnimationClip(GameObject root, Animation animation, str animClip.name = animation.Name; #if UNITY_5 - //Not needed in Unity 5 ?? + //Not needed in Unity 5 ?? #else //Set clip to Generic type AnimationUtility.SetAnimationType(animClip, ModelImporterAnimationType.Generic); diff --git a/Assets/ThirdParty/Spriter2Unity/Editor/Unity/ScmlPostProcessor.cs b/Assets/ThirdParty/Spriter2Unity/Editor/Unity/ScmlPostProcessor.cs index f1f8126..453dcde 100644 --- a/Assets/ThirdParty/Spriter2Unity/Editor/Unity/ScmlPostProcessor.cs +++ b/Assets/ThirdParty/Spriter2Unity/Editor/Unity/ScmlPostProcessor.cs @@ -124,7 +124,7 @@ static void ImportScml(string assetPath) if (animationClip) { #if UNITY_5 - controller.AddMotion(animationClip); + controller.AddMotion(animationClip); #else AnimatorController.AddAnimationClipToController(controller, animationClip); #endif diff --git a/Assets/ThirdParty/Spriter2Unity/Editor/Utils/AnimationCurveUtils.cs b/Assets/ThirdParty/Spriter2Unity/Editor/Utils/AnimationCurveUtils.cs index bbd4eed..e1d68cd 100644 --- a/Assets/ThirdParty/Spriter2Unity/Editor/Utils/AnimationCurveUtils.cs +++ b/Assets/ThirdParty/Spriter2Unity/Editor/Utils/AnimationCurveUtils.cs @@ -197,6 +197,7 @@ public static void SetAnimationSettings(this AnimationClip animClip, AnimationCl MethodInfo mInfo = typeof(AnimationUtility).GetMethod("SetAnimationClipSettings", bindingFlags); mInfo.Invoke(null, new object[] { animClip, settings }); #endif + } } } From 7d0fc93bddbeeadfed875d6fd4113c7a1fdb77d4 Mon Sep 17 00:00:00 2001 From: Alaa-eddine Date: Mon, 23 Feb 2015 10:48:29 +0100 Subject: [PATCH 4/5] Fixed duplicate BindingFlags --- .../ThirdParty/Spriter2Unity/Editor/Utils/AnimationCurveUtils.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/Assets/ThirdParty/Spriter2Unity/Editor/Utils/AnimationCurveUtils.cs b/Assets/ThirdParty/Spriter2Unity/Editor/Utils/AnimationCurveUtils.cs index e1d68cd..8964732 100644 --- a/Assets/ThirdParty/Spriter2Unity/Editor/Utils/AnimationCurveUtils.cs +++ b/Assets/ThirdParty/Spriter2Unity/Editor/Utils/AnimationCurveUtils.cs @@ -191,7 +191,6 @@ public static void SetAnimationSettings(this AnimationClip animClip, AnimationCl //Use reflection to get the internal method BindingFlags bindingFlags = BindingFlags.Static | BindingFlags.NonPublic; #if UNITY_5 - BindingFlags bindingFlags = BindingFlags.Static | BindingFlags.NonPublic; AnimationUtility.SetAnimationClipSettings(animClip, settings); #else MethodInfo mInfo = typeof(AnimationUtility).GetMethod("SetAnimationClipSettings", bindingFlags); From c6a6035bbce831270ac4ec43eb9ddaf2ea348f40 Mon Sep 17 00:00:00 2001 From: Alaa-eddine Date: Mon, 16 Mar 2015 22:54:57 +0100 Subject: [PATCH 5/5] Bindingflags only needed in Unity < 5 --- .../Spriter2Unity/Editor/Utils/AnimationCurveUtils.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Assets/ThirdParty/Spriter2Unity/Editor/Utils/AnimationCurveUtils.cs b/Assets/ThirdParty/Spriter2Unity/Editor/Utils/AnimationCurveUtils.cs index 8964732..f5821c8 100644 --- a/Assets/ThirdParty/Spriter2Unity/Editor/Utils/AnimationCurveUtils.cs +++ b/Assets/ThirdParty/Spriter2Unity/Editor/Utils/AnimationCurveUtils.cs @@ -189,10 +189,11 @@ public static void AddKeyIfChanged(this AnimationCurve curve, Keyframe keyframe) public static void SetAnimationSettings(this AnimationClip animClip, AnimationClipSettings settings) { //Use reflection to get the internal method - BindingFlags bindingFlags = BindingFlags.Static | BindingFlags.NonPublic; + #if UNITY_5 AnimationUtility.SetAnimationClipSettings(animClip, settings); #else + BindingFlags bindingFlags = BindingFlags.Static | BindingFlags.NonPublic; MethodInfo mInfo = typeof(AnimationUtility).GetMethod("SetAnimationClipSettings", bindingFlags); mInfo.Invoke(null, new object[] { animClip, settings }); #endif