En este articulo veremos unos cuantos atributos para mejorar el código en Unity.
Mostrar variables privadas en el inspector
Algo que pasa, es que las variables que queremos editar las ponemos publicas, lo cual es una mala practica de programación, entonces si la variable solo se usara dentro de ese script, debe ser privada. Entonces si tengo que editarla por el inspector como lo hago. Solo se hace lo siguiente:
Ocultar variables publicas del inspector
Podemos hacer lo contrario, si por algún caso, la variable sera usada en otros scripts, pero, no se necesita en el inspector, la podremos ocultar así:
Texto informativo de variables en el inspector
Si queremos organizar las variables, se puede hace con un texto así:
Genera un texto antes de las variables en el inspector.
Recuadro de información
Este es diferente al anterior atributo, ya que al pasar el mouse por encima de la variable en el inspector, mostrara un texto nuestro, lo crearemos así:
Limite para una variable numérica
Si queremos delimitar cual es el mínimo y máximo de una variable lo haremos así:
En el ejemplo limitamos la variable ejemplo a valores desde 0 a 4.
O así, para que sea un valor decimal.
Valor mínimo
Si queremos que la variable tengo un mínimo, haremos lo siguiente:
En el ejemplo anterior, la variable, no puede ser menor a 10.
Espacios entre variables
Si necesita espacios en las variables en el inspector, agregamos:
Creara un pequeño espacio, para una mejor visualización. Pero también se puede definir el tamaño de espacio, pasando un valor en pixeles, así:
Crea un gran espacio vació...
Mejorar la visualizacion de textos
Si queremos ver mejor un texto largo, solo tenemos que agregar:
Pero si queremos tener un mínimo de lineas y un máximo, lo agregamos así:
En el ejemplo anterior delimitamos, a mínimo 2 lineas para mostrar, y máximo 8 lineas.
Objetos obligatorios en el script
Si el script obligatoriamente necesita un componente, podemos definirlo dentro del mismo script, así:
En el ejemplo anterior, estamos solicitando el componente Rigidbody2D, esto se pone antes de crear la clase.
Context menu
Podemos usar de manera directa una función o que una variable tenga una función, ejemplo:
Para poder verlo, le damos click derecho al componente y nos saldrá la función.
También podemos agregarlo a una variable:
Para verlo, haremos lo mismo, le damos click a la variable y nos mostrara la función.
Menu item
También, podemos crear nuestras funciones de una manera mas global, que no dependan de un componente, como ejemplo tenemos:
El código anterior es:
La linea 1: es lo que hace accesible la función. Debemos poner una ruta.
Linea 2: es la función, debe ser estática.
Linea 3 a 6: obtienen el gameObject seleccionado agregan sus hijos a una lista y luego los elimina.
Se vera asi:
La flecha verde indica el gameObject seleccionado, y la flecha roja nuestra función, si notan; la función no se puede usar, y eso porque el objeto no tiene hijos. Pero esta validación hay que codearla... Así:El código anterior es:
La linea 1: es igual que el ejemplo anterior, ya que para que valide si una función se puede usar debe tener el mismo nombre. Ademas para asegurarnos que es un validador, le agregamos el true.
La linea 2: es la función, tiene que ser estática y debe devolver un boleano.
La linea 3: evalúa si el gameObject seleccionado tiene hijos. Según eso devolverá falso o verdadero.
Se vera así:
Ahora vemos que el objeto tiene 3 hijos, entonces la validación activa el uso de la función, y podremos usarla.Nota: para que funcione, debemos importar UnityEditor.
En conclusión, estos atributos nos ayudaran en la calidad del código, hay mas, pero estos son los mas útiles.
No presento imágenes, ya que deseo que el lector los pruebe por si mismo.