Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Colorear variables en Inspector (destacar)

Iniciado por farenhai, Julio 01, 2016, 06:27:35 PM

Tema anterior - Siguiente tema
Buenas!
 
 
 
Una pregunta que ya me temo la respuesta porque no lo he visto nunca... ¿Existe alguna manera de COLOREAR/MARCAR variables en el inspector? Tengo mogollón en un mismo script, y aunque los nombres son bastante descriptivos de por sí, a veces se hace complicado moverse entre tanta variable...
 
 
 
Imagino que ni de coña, pero por si acaso....
 
 
 
¡Gracias!

Julio 01, 2016, 10:16:50 PM #1 Ultima modificación: Julio 01, 2016, 10:20:55 PM por kaito
Creando un PropertyAttribute. Tutorial: http://www.klonk-games.com/2014/10/custom-attributes-unity3d/
 
He creado este PropertyAttribute que colorea el campo de la variable:
 
 
 

using UnityEngine;
using Unit***itor;
using System.Collections;
public class FieldColor : PropertyAttribute {
    public Color color;
    public FieldColor(float a,float b,float c)
    {
        this.color = new Color(a,b,c,1f);
    }
 
}
[CustomPropertyDrawer(typeof(FieldColor))]
public class FieldColorDrawer : DecoratorDrawer
{
    public override void OnGUI(Rect position)
    {
        FieldColor fc = (FieldColor)this.attribute;
        GUI.color = fc.color;
    }
 
}

 
 
 
Y el test:
 

using UnityEngine;
using System.Collections;
public class Test : MonoBehaviour {
    [FieldColor(1f,0f,0f)]
    public float f1 = 1f;
    public float f2 = 3f;
    [FieldColor(0f,1f,0f)]
    public int e1 = 5;
}

 
 

El Inspector de Unity permite Markup, así que puedes hacer un customEditor y, en el campo de prefix de la variable(su nombre, no su valor), lo puedes presentar en cualquier color, negrita o itálica...

¡Gracias a los dos! Lo probaré (me va a venir de perlas!)

Etiquetas: