diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Windows/SkeletonBaker.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Windows/SkeletonBaker.cs index e03cee831..952277cda 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Windows/SkeletonBaker.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Windows/SkeletonBaker.cs @@ -69,6 +69,10 @@ namespace Spine.Unity.Editor { public static class SkeletonBaker { const string SpineEventStringId = "SpineEvent"; + public static UnityEngine.Object SpineEventObjectPlaceholder { + get { return SpineEditorUtilities.Icons.skeletonDataAssetIcon; } + } + const float EventTimeEqualityEpsilon = 0.01f; #region SkeletonMecanim's Mecanim Clips @@ -1550,6 +1554,8 @@ namespace Spine.Unity.Editor { if (!string.IsNullOrEmpty(spineEvent.String)) { unityAnimationEvent.stringParameter = spineEvent.String; + // if string (separate from name) is set in event, fallback to objectReferenceParameter. + unityAnimationEvent.objectReferenceParameter = SpineEventObjectPlaceholder; } else if (spineEvent.Int != 0) { unityAnimationEvent.intParameter = spineEvent.Int; } else if (spineEvent.Float != 0) { @@ -1562,7 +1568,8 @@ namespace Spine.Unity.Editor { static void AddPreviousUserEvents (ref List allEvents, AnimationEvent[] previousEvents) { foreach (AnimationEvent previousEvent in previousEvents) { - if (previousEvent.stringParameter == SpineEventStringId) + if (previousEvent.stringParameter == SpineEventStringId || + previousEvent.objectReferenceParameter == SpineEventObjectPlaceholder) continue; AnimationEvent identicalEvent = allEvents.Find(newEvent => { return newEvent.functionName == previousEvent.functionName &&