From a7661270c0f83a7468253e9bacc4d3c61a19fde2 Mon Sep 17 00:00:00 2001 From: John Date: Sat, 23 Jul 2016 00:27:58 +0800 Subject: [PATCH] [unity] BoneFollower same-GameObject editor guard. --- .../Assets/spine-unity/Editor/BoneFollowerInspector.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/spine-unity/Assets/spine-unity/Editor/BoneFollowerInspector.cs b/spine-unity/Assets/spine-unity/Editor/BoneFollowerInspector.cs index d6341be35..534d0510f 100644 --- a/spine-unity/Assets/spine-unity/Editor/BoneFollowerInspector.cs +++ b/spine-unity/Assets/spine-unity/Editor/BoneFollowerInspector.cs @@ -63,13 +63,20 @@ namespace Spine.Unity.Editor { // Find Renderer if (skeletonRenderer.objectReferenceValue == null) { SkeletonRenderer parentRenderer = BoneFollowerInspector.GetInParent(targetBoneFollower.transform); - if (parentRenderer != null) { + if (parentRenderer != null && parentRenderer.gameObject != targetBoneFollower.gameObject) { Debug.Log("Inspector automatically assigned BoneFollower.SkeletonRenderer"); skeletonRenderer.objectReferenceValue = parentRenderer; } } EditorGUILayout.PropertyField(skeletonRenderer); + var skeletonRendererReference = skeletonRenderer.objectReferenceValue as SkeletonRenderer; + if (skeletonRendererReference != null) { + if (skeletonRendererReference.gameObject == targetBoneFollower.gameObject) { + skeletonRenderer.objectReferenceValue = null; + EditorUtility.DisplayDialog("Invalid assignment.", "BoneFollower can only follow a skeleton on a separate GameObject.\n\nCreate a new GameObject for your BoneFollower, or choose a SkeletonRenderer from a different GameObject.", "Ok"); + } + } if (targetBoneFollower.valid) { EditorGUI.BeginChangeCheck();