public static bool HandleSingleSpriteDragIntoHierarchy(IHierarchyProperty property, Sprite sprite, bool perform) { GameObject gameObject = null; if (property != null && property.pptrValue != null) { UnityEngine.Object pptrValue = property.pptrValue; gameObject = (pptrValue as GameObject); } if (perform) { Vector3 defaultInstantiatePosition = SpriteUtility.GetDefaultInstantiatePosition(); GameObject gameObject2 = SpriteUtility.DropSpriteToSceneToCreateGO(sprite, defaultInstantiatePosition); if (gameObject != null) { Analytics.Event("Sprite Drag and Drop", "Drop single sprite to existing gameobject", "null", 1); gameObject2.transform.parent = gameObject.transform; gameObject2.transform.localPosition = Vector3.zero; } else { Analytics.Event("Sprite Drag and Drop", "Drop single sprite to empty hierarchy", "null", 1); } Selection.activeGameObject = gameObject2; } return(true); }