Jorge Vallejo Blog

Blog del creativo, ilustrador y profesor de videojuegos Jorge Vallejo

Ayudas en el Inspector de Unity: Añadiendo atributos

En Unity podemos añadir ayudas al inspector cuando estamos utilizando un script para que nos recuerde que hace determinada variable, poner un rango para un número, hacer una caja de texto más grande etc.

Estas ayudas se llaman Atributos, la información que proporciona Unity sobre este tema puede encontrase aquí, aun que algunos no están muy bien explicados.

ATRIBUTOS:
[HelpURL ("http://www.jorgevallejo.es/2017/10/unity-atributos.html")]

¿Donde va?:
Antes de la declaración de la clase

¿Qué hace?
Permite generar un enlace desde el inspector a una URL, útil para generar ayudas internas.
Debermos pulsar sobre el botón interrogación del inspector

Ejemplo:
[HelpURL ("http://www.jorgevallejo.es/2017/10/unity-atributos.html")]
public class Menu_Inicio : MonoBehaviour {
}

[RequireComponent (typeof(Rigidbody))]
¿Donde va?:
Antes de la declaración de la clase

¿Qué hace?
Determina que el componente necesita otro y lo añade automáticamente cuando colocamos el script, de esta forma no olvidaremos un componente necesario.
Debemos hacer las referencias correspondientes para poder utilizarlo, es simplemente como si ubieramos añadido el componente manualmente.

Ejemplo:
[RequireComponent (typeof(Rigidbody))]
public class Menu_Inicio : MonoBehaviour {
Rigidbody rb;

void Start()
{
rb = GetComponent();
}
}

[Space(20)]
¿Donde va?:
Después de la declaración de la clase. Donde queremos que en el inspector haya un espacio.

¿Qué hace?
Permite crear un espacio entre bloques de variables.
Crea un espacio del tamaño indicado.

Ejemplo:
public class Menu_Inicio : MonoBehaviour {
[Space(120)]
public int fuerza;
}

[Header("Boton de cierre")]

¿Donde va?:
Después de la declaración de la clase. Donde queremos que en el inspector aparezca un texto.

¿Qué hace?
En el inspector nos aparecerá un label con el string que le pasemos al Header
Simplemente es informativo.

Ejemplo:
public class Menu_Inicio : MonoBehaviour {

....
[Header("Boton de cierre")]
}

[TextArea]
¿Donde va?:
Después de la declaración de la clase. Justo encima de la variable publica texto que queramos modificar.

¿Qué hace?
El texto aparecerá como un TextArea en un lugar de como InputField de una sola línea.
Útil para escribir textos desde el inspector.

Ejemplo:
public class Menu_Inicio : MonoBehaviour {
[TextArea]
public string texto="Aqui va un texto largo";
}

[Tooltip("¿Tiene botón de cerrar?")]
¿Donde va?:
Después de la declaración de la clase. Justo encima de la variable publica en la que se quiera que aparezca el tooltip o texto explicativo.

¿Qué hace?
Cuando mantengamos el cursor sobre la variable asignada, en el inspector nos aparecerá un tooltip explicativo.
Útil para variables complejas o cuando hay muchas parecidas.

Ejemplo:
public class Menu_Inicio : MonoBehaviour {
[Tooltip("¿Tiene botón de cerrar?")]
public bool tiene_cierra;
}

[Range(0.0F, 10.0F)]
¿Donde va?:
Después de la declaración de la clase. Justo encima de la variable publica.

¿Qué hace?
Aparezca un rango en forma de slider en lugar de un cajetin.
Valido para números enteros o decimales.

Ejemplo:
[Range(0.0F, 10.0F)]
public int fuerza;

[ExecuteInEditMode]
¿Donde va?:
Antes de la declaración de la clase.

¿Qué hace?
Permite ejecutar el script en modo edición, lo que puede ser extremadamente útil cuando el juego empiece a pesar y tarde en arrancar, muy útil también para hacer pruebas sin arrancar el juego.

Ejemplo:
[ExecuteInEditMode]
public class Menu_Inicio : MonoBehaviour {}

También podremos crear menus contextuales, es decir que aparezcan cuando pulsemos el botón derecho del ratón sobre una variable.
¿Qué necesita para funcionar?
Necesitaremos:
Declarar un [ContextMenuItem("Reset", "Borra")]
Declarar un [ContextMenu ("Borra texto")]
Tener una función asociada en este caso Borra

¿Donde va?:
Después de la declaración de la clase. En la variable que queramos que tenga el menu contextual.

¿Qué hace?
Aparecerá un menú contextual al pulsar el botón derecho del ratón, que contendrá minibotones asociados a funciones.
Útil para tareas repetitivas dentro del inspector como poner una variable a 0 , borrar un texto, etc

Ejemplo:
[ContextMenuItem("Reset", "Borra")]
[Multiline(8)]
public string texto_largo = "";
[ContextMenu ("Borra texto")]
void Borra() {
texto_largo = "";
}

Leave a Reply

Your email address will not be published. Required fields are marked *