예제 #1
0
        public static EditorTexture Icon(this UnityObject obj)
        {
            var icon = (Texture2D)EditorGUIUtility.ObjectContent(obj, obj?.GetType()).image;

            if (icon != null)
            {
                return(EditorTexture.Single(icon));
            }

            return(null);
        }
예제 #2
0
        private static EditorTexture GetBuiltInUnityTypeIcon(Type type)
        {
            var icon = (Texture2D)EditorGUIUtility.ObjectContent(null, type).image;

            // Change the blank file icon to a Unity-logo file icon
            if (icon == EditorGUIUtility.FindTexture("DefaultAsset Icon"))
            {
                icon = EditorGUIUtility.FindTexture("ScriptableObject Icon");
            }

            if (icon != null)
            {
                return(EditorTexture.Single(icon));
            }

            return(null);
        }
예제 #3
0
        private static EditorTexture GetScriptTypeIcon(string scriptName)
        {
            var scriptObject = (UnityObject)EditorGUIUtility_GetScriptObjectFromClass.Invoke(null, new object[] { scriptName });

            if (scriptObject != null)
            {
                var scriptIcon = (Texture2D)EditorGUIUtility_GetIconForObject.Invoke(null, new object[] { scriptObject });

                if (scriptIcon != null)
                {
                    return(EditorTexture.Single(scriptIcon));
                }
            }

            var scriptPath = AssetDatabase.GetAssetPath(scriptObject);

            if (scriptPath != null)
            {
                switch (Path.GetExtension(scriptPath))
                {
                case ".js":

                    return(EditorTexture.Single((Texture2D)EditorGUIUtility.IconContent("js Script Icon").image));

                case ".cs":

                    return(EditorTexture.Single((Texture2D)EditorGUIUtility.IconContent("cs Script Icon").image));

                case ".boo":

                    return(EditorTexture.Single((Texture2D)EditorGUIUtility.IconContent("boo Script Icon").image));
                }
            }

            return(null);
        }
예제 #4
0
 public Root(GUIContent header)
 {
     label = header.text;
     icon  = EditorTexture.Single(header.image);
 }