Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: COBO en Marzo 12, 2018, 08:33:17 PM

Título: [Aporte] Hierarchy Icons
Publicado por: COBO en Marzo 12, 2018, 08:33:17 PM
Hola. Aquí les dejo esta simple herramienta para visualizar iconos en la Hierarchy View. Así podrás encontrar los GameObjects mas fácilmente.
 
El enlace de descarga esta en el vídeo:
 


   
eature=oembed" width="480">

 
 
 
 (//<fileStore.core_Attachment>/monthly_2018_03/5aa6d5a85883a_hierarchyicons.png.869ca386d6dee13d58b371fb3e7f8303.png)
Título: [Aporte] Hierarchy Icons
Publicado por: lightbug en Marzo 13, 2018, 03:51:12 AM
Genial! super útil, también muy prolijo el código, es tuyo? Siempre quise meter mano en el hierarchy, es muuuuuy feo y malo el de Unity, cero productividad, cero visual, quizás con esto se puede batallar un poquito más la parte visual.
 
Me tomé el atrevimiento de poner algunos if's en el OnEnable para que se asignen algunos automáticamente (así de cómodo soy) como camaras, luces, canvas, y calculo que más adelante iré agregando (aunque esto es más personal del proyecto que general, sobretodo por managers y esas cosas)
 

void OnEnable()
        {
            m_iconProperty = serializedObject.FindProperty("icon");
            m_tooltipProperty = serializedObject.FindProperty("tooltip");
            m_positionProperty = serializedObject.FindProperty("position");
            if(m_target == null){
                m_target = (HierarchyIcon)target;
                Texture2D iconTexture2D = null;
               
                if(m_target.GetComponent<Camera>()){
                    iconTexture2D = (Texture2D)EditorGUIUtility.Load("Camera Icon");
                }else if(m_target.GetComponent<Light>()){
                    iconTexture2D = (Texture2D)EditorGUIUtility.Load("Light Icon");
                }else if(m_target.GetComponent<Canvas>()){
                    iconTexture2D = (Texture2D)EditorGUIUtility.Load("Canvas Icon");
                }else if(...)){
                    ...
                }
               
                if(iconTexture2D != null)
                    m_target.icon = iconTexture2D;
            }
        }

 
y acá encontre algunos nombres de los iconos internos de Unity:
 
https://gist.github.com/MattRix/c1f7840ae2419d8eb2ec0695448d4321 (https://gist.github.com/MattRix/c1f7840ae2419d8eb2ec0695448d4321)
 
Gracias!
Título: [Aporte] Hierarchy Icons
Publicado por: pioj en Marzo 13, 2018, 09:11:03 AM
Gran aporte! buen trabajo.
Título: [Aporte] Hierarchy Icons
Publicado por: COBO en Marzo 13, 2018, 05:10:55 PM
Cita de: lightbug date=1520909472Genial! super útil, también muy prolijo el código, es tuyo? Siempre quise meter mano en el hierarchy, es muuuuuy feo y malo el de Unity, cero productividad, cero visual, quizás con esto se puede batallar un poquito más la parte visual.
   
   
      Me tomé el atrevimiento de poner algunos if's en el OnEnable para que se asignen algunos automáticamente (así de cómodo soy) como camaras, luces, canvas, y calculo que más adelante iré agregando (aunque esto es más personal del proyecto que general, sobretodo por managers y esas cosas)
   
   

void OnEnable()
        {
            m_iconProperty = serializedObject.FindProperty("icon");
            m_tooltipProperty = serializedObject.FindProperty("tooltip");
            m_positionProperty = serializedObject.FindProperty("position");
            if(m_target == null){
                m_target = (HierarchyIcon)target;
                Texture2D iconTexture2D = null;
               
                if(m_target.GetComponent<Camera>()){
                    iconTexture2D = (Texture2D)EditorGUIUtility.Load("Camera Icon");
                }else if(m_target.GetComponent<Light>()){
                    iconTexture2D = (Texture2D)EditorGUIUtility.Load("Light Icon");
                }else if(m_target.GetComponent<Canvas>()){
                    iconTexture2D = (Texture2D)EditorGUIUtility.Load("Canvas Icon");
                }else if(...)){
                    ...
                }
               
                if(iconTexture2D != null)
                    m_target.icon = iconTexture2D;
            }
        }

   
      y acá encontre algunos nombres de los iconos internos de Unity:
   
   
      https://gist.github.com/MattRix/c1f7840ae2419d8eb2ec0695448d4321 (https://gist.github.com/MattRix/c1f7840ae2419d8eb2ec0695448d4321)
   
   
      Gracias!
   


Sip. El código es 100% mio. Mi intención al principio solo era mostrar un icono con un tooltip. Como un comentario acerca de la función que cumplía algún gameobject. Pero después me surgió la idea de poder cambiar el icono y agregar mas iconos en diferentes posiciones debido a que por ejemplo el icono del brain de cinemachine en la cámara principal esta siempre a la derecha. Ahora utilizo esta pequeña herramienta en todos mis proyectos :)
 
Sobre los iconos internos de Unity. La herramienta los encuentra todos. Incluso tus texturas en en la vista de proyecto. Solo tienes marcar el checkbox 'All' en la parte inferior derecha de la window para seleccionar los iconos. Entonces podrás seleccionar tus texturas como iconos y otros iconos incorporado de unity.