Notice: La función wp_enqueue_script ha sido llamada de forma incorrecta. Los scripts y estilos no se deberían registrar o poner en cola hasta que se carguen los ganchos wp_enqueue_scripts, admin_enqueue_scripts y login_enqueue_scripts. Este aviso ha sido activado por la gestión de nfd_wpnavbar_setting. Por favor, ve depuración en WordPress para más información. (Este mensaje fue añadido en la versión 3.3.0). in /home1/spotsail/public_html/martra/wp-includes/functions.php on line 6078
Como crear un menú con Unity. – Pere Martra
No se han encontrado widgets en la barra lateral

Crear un menú para UNITY es SENCILLO! Vamos a crear un menú que será el responsable de cargar las diferentes escenas de nuestro proyecto Unity.

¿Qué tenemos en la Hierarchy de la scene del menú ?

Para crear el menú lo primero que tenemos que hacer es crear una escena. Esta escena seria la principal de nuestro juego y se cargaría al principio. Esta escena tendrá que contener:

  • Una cámara. (Se crea por defecto con la escena).
  • La Directional Light. (Se crea por defecto con la escena).
  • EventSystem. Para capturar eventos del usuario y nos permite situar un botón preseleccionado por defecto.
  • Objeto vacío que contendrá el menú.
  • Objeto vacío que contendrá el script que se encargará de cargar las escenas. 

Creamos el script de carga de Escenas.

Creamos un objeto vacío en nuestra Hierarcy, yo lo he llamado MenuManager y le incorporamos un script, que tambien he llamado MenuManager, que tan solo contendrá una función.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class MenuManager : MonoBehaviour {

    public void loadScene(string scene)
	{
		SceneManager.LoadScene(scene);
	}
}

Incorporamos SceneManagement y usamos la función LoadScene para cargar la función que le indiquemos, el parámetro. El parametro lo informaremos en cada uno de los botones que formarán el menú.

Creando el menú.

  • Creamos un objeto vacío en hierarchy, yo lo he llamado MainMenu. Lo situamos en la posición 0,0,0, solo tenemos que seleccionar la ruedecita de la parte superior derecha del Inspector del elemento vacío y pulsar en Reset.
    • Le añadimos un Canvas.
    • Canvas Scaler. Nos permite adaptar el tamaño a diferentes tipos de pantallas con diferentes resoluciones.
    • Graphic Raycaster. Captura las entradas del usuario. 
      El objeto MainMenu con sus componentes. 
  • Creamos, dependiendo de MainMenu,  un objeto vacío que contendrá los botones. Le he llamado MenuPanel
    • Le incorporamos un Canvas Group y un Grid Layout Group. Los dos elementos vienen con Unity. El Grid Layout nos permite indicar como queremos que se organicen los botones y el tamaño que le asignamos a cada uno de ellos. Hay muchas opciones  a escoger, entre columnas fijas, dinámicas y el orden en el que queremos que se ordenen los botones.El MenuPanel con la configuración que he usado. Probad diferentes opciones. 
  • Dentro del MainMenu Creamos el primer botón. Para crear el botón pulsamos con el botón derecho sobre MenuPanel y Seleccionamos: UI->Button. El botón ya se creará con todos los componentes necesarios. Tan solo tenemos que configurarlos a nuestro gusto.
    • En Source Image, del elemento Image,  yo suelo escoger InputFieldBackground, me gusta el formato de botones cuadrados y planos,  pero  podéis usar una imagen a medida.
    • En el script Button, podemos escoger los colores que tendrá el botón en sus diferentes estados: normal, seleccionado y presionado.
    • En On Click, indicaremos la función a llamar. Arrastramos el objeto MenuManager a la casilla que esta debajo del Runtime Only . En el desplegables nos dejará escoger la función a llamar y cuando la escojamos nos mostrará un cuadro para que informemos el parámetro que espera la función. Lo llenamos con el nombre de la escena a cargar y voila! ya lo tenemos.
  • Duplicamos el botón creado tantas veces como necesitemos y cambiamos el nombre de la escena a cargar.

Menú creado:

Un menú muy simple, resulton y limpio, de diseño sencillo y que podemos adaptar muy fácilmente al look&feel de nuestro juego!

Podéis ver todo el proceso en el siguiente vídeo:

Si queréis ver un menú creado con esta técnica os podéis descargar el juego Giscard in the dark de la Google PlayStore, o pasaros por kongregate o GameJolt. No hace falta decir que es totalmente multiplataforma, no ha necesitado de ninguna adaptación para funcionar perfectamente en las diferentes plataformas.

El mejor curso para empezar con UNITY

Ya hace un tiempo que he empezado a trabajar con Unity, a nivel amateur, y sin poder dedicarle demasiadas horas, Read more

Kurond. Una criatura ineficiente.

Kurond ha sido mi primera criatura creada para moverse con ML Agents. Es ineficiente por que su cuerpo esta MAL Read more

Migrando a Unity 2018

Siempre da pereza realizar la migración a una nueva versión de Unity, sobretodo si no tenemos muy claro que vayamos Read more

Incorporemos niveles a nuestro juego.

Ir avanzando por el juego, superando niveles, asumiendo nuevos retos y descubriendo nuevos mundos, es una de las sensaciones que Read more

Por Martra

2 comentarios en «Como crear un menú con Unity.»
    1. Gracias a tí por el comentario! Y disculpa que el sistema de comentarios veo que te bloqueo, y no lo he visto 🙂

      Encantado de que te haya gustado.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *