using UnityEngine; 
 | 
using UnityEditor; 
 | 
using System.Collections; 
 | 
using UnityEngine.UI; 
 | 
  
 | 
public class GameObjectMenuExtension 
 | 
{ 
 | 
  
 | 
    [MenuItem("GameObject/UI/ImageToImageEx &5")] 
 | 
    static void CreateTextEx() 
 | 
    { 
 | 
  
 | 
       for (var i=0;i<Selection.gameObjects.Length;i++) 
 | 
       { 
 | 
            var gameObject = Selection.gameObjects[i]; 
 | 
            var image = gameObject.GetComponent<Image>(); 
 | 
  
 | 
            if (image != null) 
 | 
            { 
 | 
                var sprite = image.overrideSprite; 
 | 
                var color = image.color; 
 | 
                var material = image.material; 
 | 
                var raycast = image.raycastTarget; 
 | 
                var imageType = image.type; 
 | 
                var fillOrigin = image.fillOrigin; 
 | 
                var fillClockWise = image.fillClockwise; 
 | 
                var fillMethod = image.fillMethod; 
 | 
                var fillCenter = image.fillCenter; 
 | 
                var preserveAspect = image.preserveAspect; 
 | 
                var fillAmount = image.fillAmount; 
 | 
  
 | 
  
 | 
                Component.DestroyImmediate(image); 
 | 
  
 | 
                var imageEx = gameObject.AddMissingComponent<ImageEx>(); 
 | 
                imageEx.sprite = sprite; 
 | 
                imageEx.color = color; 
 | 
                imageEx.material = material; 
 | 
                imageEx.raycastTarget = raycast; 
 | 
                imageEx.type = imageType; 
 | 
  
 | 
                imageEx.fillOrigin = fillOrigin; 
 | 
                imageEx.fillClockwise = fillClockWise; 
 | 
                imageEx.fillMethod = fillMethod; 
 | 
                imageEx.fillCenter = fillCenter; 
 | 
                imageEx.preserveAspect = preserveAspect; 
 | 
                imageEx.fillAmount = fillAmount; 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
  
 | 
    [InitializeOnLoadMethod] 
 | 
    static void StartInitializeOnLoadMethod() 
 | 
    { 
 | 
        //EditorApplication.hierarchyWindowItemOnGUI += OnHierarchyGUI; 
 | 
    } 
 | 
  
 | 
    static void OnHierarchyGUI(int instanceID, Rect selectionRect) 
 | 
    { 
 | 
        if (Event.current != null && selectionRect.Contains(Event.current.mousePosition) 
 | 
            && Event.current.button == 1 && Event.current.type <= EventType.MouseUp) 
 | 
        { 
 | 
            var selectedGameObject = EditorUtility.InstanceIDToObject(instanceID) as GameObject; 
 | 
            if (selectedGameObject) 
 | 
            { 
 | 
                if (selectedGameObject.GetComponent<Image>()) 
 | 
                { 
 | 
                    //Vector2 mousePosition = Event.current.mousePosition; 
 | 
                    //EditorUtility.DisplayPopupMenu(new Rect(mousePosition.x, mousePosition.y, 0, 0), "GameObject/UICustom", null); 
 | 
                    //Event.current.Use(); 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
  
 | 
} 
 |