diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonGraphicInspector.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonGraphicInspector.cs index c4c6982d2..584925296 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonGraphicInspector.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonGraphicInspector.cs @@ -361,7 +361,8 @@ namespace Spine.Unity.Editor { if (skeleton != null) { for (int i = 0, n = separatorSlotNames.arraySize; i < n; i++) { string slotName = separatorSlotNames.GetArrayElementAtIndex(i).stringValue; - int index = skeleton.Data.FindSlot(slotName).Index; + SlotData slot = skeleton.Data.FindSlot(slotName); + int index = slot != null ? slot.Index : -1; if (index == 0 || index == lastSlot) { hasTerminalSlot = true; break; diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonRendererInspector.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonRendererInspector.cs index c0b835ff4..abff041fd 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonRendererInspector.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonRendererInspector.cs @@ -483,7 +483,8 @@ namespace Spine.Unity.Editor { if (skeleton != null) { for (int i = 0, n = separatorSlotNames.arraySize; i < n; i++) { string slotName = separatorSlotNames.GetArrayElementAtIndex(i).stringValue; - int index = skeleton.Data.FindSlot(slotName).Index; + SlotData slot = skeleton.Data.FindSlot(slotName); + int index = slot != null ? slot.Index : -1; if (index == 0 || index == lastSlot) { hasTerminalSlot = true; break; diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/SkeletonUtility.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/SkeletonUtility.cs index 545c7e7f8..eb5add172 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/SkeletonUtility.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/SkeletonUtility.cs @@ -53,7 +53,8 @@ namespace Spine.Unity { return null; } - var attachment = skin.GetAttachment(skeleton.Data.FindSlot(slotName).Index, attachmentName); + Slot slot = skeleton.FindSlot(slotName); + var attachment = slot != null ? skin.GetAttachment(slot.Data.Index, attachmentName) : null; if (attachment == null) { Debug.LogFormat("Attachment in slot '{0}' named '{1}' not found in skin '{2}'.", slotName, attachmentName, skin.Name); return null; @@ -61,7 +62,6 @@ namespace Spine.Unity { var box = attachment as BoundingBoxAttachment; if (box != null) { - var slot = skeleton.FindSlot(slotName); return AddBoundingBoxGameObject(box.Name, box, slot, parent, isTrigger); } else { Debug.LogFormat("Attachment '{0}' was not a Bounding Box.", attachmentName); diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/SpineAttributes.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/SpineAttributes.cs index 2439a1887..a7a4e1264 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/SpineAttributes.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/SpineAttributes.cs @@ -252,10 +252,11 @@ namespace Spine.Unity { public static Spine.Attachment GetAttachment (string attachmentPath, Spine.SkeletonData skeletonData) { var hierarchy = SpineAttachment.GetHierarchy(attachmentPath); - return string.IsNullOrEmpty(hierarchy.name) ? - null : - skeletonData.FindSkin(hierarchy.skin).GetAttachment( - skeletonData.FindSlot(hierarchy.slot).Index, hierarchy.name); + if (string.IsNullOrEmpty(hierarchy.name)) return null; + + SlotData slot = skeletonData.FindSlot(hierarchy.slot); + if (slot == null) return null; + return skeletonData.FindSkin(hierarchy.skin).GetAttachment(slot.Index, hierarchy.name); } public static Spine.Attachment GetAttachment (string attachmentPath, SkeletonDataAsset skeletonDataAsset) {