Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Flash

Comenzando con la unidad - Terminando nuestro juego con un menú

by
Read Time:11 minsLanguages:
This post is part of a series called Getting Started with Unity.
Getting Started With Unity: GUI, Scoring, Timers, & Particles

Spanish (Español) translation by Elías Nicolás (you can also view the original English article)

Hay varios métodos utilizados para producir menús dentro de Unity, los dos principales son el sistema integrado de GUI y el uso de GameObjects con Colliders que responden a las interacciones con el mouse. El sistema GUI de Unity puede ser complicado de usar, por lo que vamos a utilizar el enfoque de GameObject, que creo que también es un poco más divertido para lo que estamos tratando de lograr aquí.


Vista previa del resultado final

Unity Web Player. Install now!

Paso 1: determina la resolución de tu juego

Antes de diseñar un menú, siempre debe determinar qué resolución le va a servir.

Abra la configuración del Reproductor a través del menú superior, Editar> Configuración del proyecto> Reproductor e ingrese los valores predeterminados de ancho y alto de la pantalla en el inspector. Elegí dejar el mío como 600x450px por defecto como se muestra a continuación.

unity tutorial menus UI

Luego, debe ajustar el tamaño de su vista de juego del "Aspecto libre" predeterminado a "Web (600 x 450)", de lo contrario, podría ubicar los elementos del menú fuera de la pantalla.

unity tutorial menus UI

Paso 2: elegir un fondo de menú

Como habrás visto en la vista previa, nuestra escena de menú tendrá nuestro entorno de juego en el fondo para que cuando hagas clic en Play entres sin problemas en el juego.

Para hacer esto, necesitas colocar tu reproductor en algún lugar de la escena donde te gusta el fondo y redondear el valor de rotación Y. Esto es así para que sea más fácil de recordar y de replicar más adelante, de modo que la transición pueda ser transparente desde el menú al juego.

unity tutorial menus UIunity tutorial menus UIunity tutorial menus UI

¡Ahora sigamos con la creación de la escena del menú!


Paso 3: Creando la escena del menú

Asegúrate de que tu escena esté guardada y se llame "juego"; verás por qué más tarde.

Seleccione la escena del juego dentro de la vista del Proyecto y duplíquela usando Ctrl / Command + D, luego cambie el nombre de la copia a "menú" y haga doble clic para abrirla.

Nota: Puede confirmar qué escena está abierta al marcar la parte superior de la pantalla, debería decir algo como "Unity - menu.unity - ProjectName - Web Player / Stand Alone". ¡No querrás comenzar a eliminar partes accidentalmente de tu escena de juego!

Ahora seleccione y elimine la GUI y los GameObjects PickupSpawnPoints de la Jerarquía. Expanda el "Player" y arrastre la "Cámara principal" para que ya no sea un elemento secundario del Player, luego elimine el Player.

unity tutorial menus UI

A continuación, seleccione el terreno y elimine el componente Terrain Collider haciendo clic con el botón derecho y seleccionando Eliminar componente.

Finalmente, seleccione la "Cámara principal" y elimine el componente MouseLook haciendo clic derecho y seleccionando Eliminar componente.

Si ejecuta el juego ahora, no debería pasar nada y no debería poder moverse en absoluto. Si puede mover o rotar, vuelva a realizar los pasos anteriores.


Paso 4: ajustar la configuración de compilación

Actualmente, cuando construyes o juegas tu juego, el único nivel incluido dentro de esa construcción es la escena del "juego". Esto significa que la escena del menú nunca aparecerá. Para que podamos probar nuestro menú, ajustaremos la configuración de compilación ahora.

En el menú superior, seleccione Archivo> Configuraciones de compilación y arrastre la escena de menú desde su Vista de proyecto a la lista "Configuraciones en compilación" de Configuraciones de compilación como se muestra a continuación.

unity tutorial menus UIunity tutorial menus UIunity tutorial menus UI

(Asegúrate de reorganizar las escenas para poner "menu.unity" en la parte superior, de modo que sea la escena la que se cargue primero cuando se juegue el juego).

¡Perfecto!


Paso 5: Agregar el botón Reproducir

Vamos a usar texto 3D para nuestro menú, así que ve y crea un GameObject de texto 3D a través del menú superior: GameObject> Crear otro> Texto 3D, luego cámbiale el nombre a "PlayBT". Establezca la rotación Y del texto PlayBT para que coincida con el valor de rotación Y de su cámara principal, de modo que esté directamente orientada hacia ella y, por lo tanto, pueda leerse fácilmente.

Con PlayBT seleccionado, cambie la propiedad del texto de la malla de texto de Hello World a "Reproducir", reduzca el Tamaño del carácter a 0.1 y aumente el Tamaño de la fuente a 160 para que el texto sea más nítido.

Nota: Si desea utilizar una fuente diferente a la predeterminada, seleccione la fuente antes de crear el texto 3D o arrastre la fuente a la propiedad Fuente del texto del texto 3D y luego arrastre el "Material de fuente" de fuentes a la lista Materiales de restitución de malla, sobrescribiendo la fuente Material existente. ¡Una molestia, lo sé!

Finalmente, agregue un Box Collider a través del menú superior: Componente> Física> Box Collider. Cambia el tamaño del Box Collider para que se ajuste al texto si no se ajusta bien.

unity tutorial menus UIunity tutorial menus UIunity tutorial menus UI

En este punto del tutorial, realmente necesitas tener abiertas la escena y las vistas del juego al mismo tiempo, ya que ahora vas a mover el PlayBT dentro de la vista de escena para que esté centrado dentro de tu Game View, como se muestra a continuación. Recomiendo primero posicionarlo horizontalmente usando una vista de arriba hacia abajo y luego volver a usar una vista en perspectiva para colocarlo verticalmente usando los mangos de los ejes.

unity tutorial menus UIunity tutorial menus UIunity tutorial menus UI
unity tutorial menus UIunity tutorial menus UIunity tutorial menus UI

Así que ese es nuestro botón Reproducir todo configurado. ¡Ahora hagámoslo jugar!


Paso 6: la secuencia de comandos del controlador de mouse

Cree un nuevo script de JavaScript dentro de su carpeta de scripts, renómbrelo como "MenuMouseHandler" y agréguelo como un Componente de PlayBT GameObject arrastrando directamente en PlayBT o seleccionando PlayBT y arrastrando el script en su Inspector.

Reemplace el código predeterminado con lo siguiente:

Estamos utilizando la función MonoBehaviour OnMouseDown(...), invocada cada vez que haga clic con el mouse en la casilla BoxCollider. Comprobamos si el botón pulsado se llama "PlayBT", y si es así usamos Application.LoadLevel(...) para cargar la escena del "juego".

¡Basta de hablar! ¡Ve a ejecutarlo y mira cómo tu juego cobra vida cuando haces clic en Reproducir!

Nota: si hace clic en Reproducir y se encuentra con un error de configuración de compilación, no se preocupe; solo necesita verificar su configuración de compilación - revise el Paso 4.


Paso 7: finalizando el juego

Entonces, el menú para comenzar el juego es genial, pero el juego técnicamente nunca termina, ya que cuando se acaba el tiempo no ocurre nada ... arreglemos eso ahora.

Abra el script CountdownTimer y en la parte inferior de la función Tick() agregue la siguiente línea:

¡Ahora vuelve a ejecutar tu juego y cuando se acabe el tiempo volverás al menú! ¡Pan comido!

Ahí vamos - un menú básico agregado a nuestro juego. Ahora vamos a hacer que sea un poco más fácil de usar con una pantalla de ayuda para explicar cómo jugar.


Paso 8: Agregar el botón Ayuda

El botón de ayuda es idéntico al PlayBT en prácticamente todos los sentidos, así que adelante y duplica el PlayBT, renómbralo a HelpBT y colócalo debajo del botón Reproducir. Ajuste la propiedad del texto para decir "Ayuda" en lugar de "Reproducir" y, tal vez, haga que el Tamaño de la fuente sea un poco más pequeño, como se muestra a continuación: utilicé 100.

unity tutorial menus UIunity tutorial menus UIunity tutorial menus UI

Ahora abra el script de MenuMouseHandler y agregue lo siguiente else if a su instrucción if existente.

Si marca la vista previa, verá que al hacer clic en Ayuda, la cámara gira para mostrar el menú de ayuda. ¿Entonces cómo hacemos eso?


Paso 9: God Save iTween

Nuestra rotación de la cámara se puede hacer agradable y limpiamente en una línea, gracias a iTween. Sin iTween, la vida no sería tan divertida. Como el nombre puede revelar, es un motor intercalado, construido para Unity. También es gratis.

unity tutorial menus UIunity tutorial menus UIunity tutorial menus UI

Continúe y abra iTween en la tienda de Unity Asset, luego haga clic en Descargar / Importar e impórtelo todo a su proyecto. Una vez importado, debe mover el directorio iTween/Plugins a la raíz de su carpeta de recursos.

unity tutorial menus UI

¡Ahora estás listo para interponer tu vida!


Paso 10: girar la cámara

Tome un trozo de papel y un bolígrafo (o abra un documento en blanco) y anote el valor de rotación Y de su cámara principal, como se muestra a continuación.

unity tutorial menus UI

Dentro de la vista de escena, gire la cámara en cualquier dirección que desee alrededor del eje Y para que el texto Reproducir y Ayuda quede fuera de la vista y tenga un fondo decente para su página de ayuda. Puedes ver el mío a continuación: giré de -152 a -8.

unity tutorial menus UIunity tutorial menus UIunity tutorial menus UI

Regrese a su secuencia de comandos MenuMouseHandler y agregue la siguiente línea dentro de la declaración else if:

Usamos Camera.main para recuperar la cámara principal (definida por la etiqueta "MainCamera") de la escena y usamos iTween.RotateTo(...) para rotar la cámara a un ángulo específico, en mi caso -8.

(Debe reemplazar el -8 dentro de la línea anterior con la rotación actual de su cámara).

Ahora regrese a su escena y devuelva su cámara a su rotación original que anotó al comienzo de esta sección, de modo que quede frente a PlayBT. Ejecute su juego, haga clic en Ayuda y la cámara debería girar.

Nota: Si obtiene un error acerca de que iTween no existe, entonces no lo ha importado correctamente: revise el Paso 9.

Ahora construyamos nuestra página de Ayuda.


Paso 11: creación de la página de ayuda

Gire su cámara de nuevo a la rotación Y de su página de ayuda, en mi caso -8.

Ahora vamos a agregar un pequeño texto de explicación y un poco más de texto para explicar las diferentes recolecciones y sus puntajes. Finalmente, agregaremos un botón Atrás para regresar al menú principal. Puede organizar su página de la forma que desee, así que siéntase libre de ser creativo. Aquí vamos...

Duplique la HelpBT, renómbrela HelpHeader, establezca su rotación en la de su cámara, cambie el valor Anchor a "upper center" y reduzca el Tamaño de la Fuente - Yo usé 60.

A continuación, copie y pegue el párrafo siguiente en la propiedad text:

"Recoge tantos cubos como puedas dentro del límite de tiempo.
Pero cuidado, ¡cambian con el tiempo!

Nota: Vale la pena señalar que no puede escribir texto de líneas múltiples en la propiedad del texto; tiene que escribirlo en otro programa y luego copiarlo y pegarlo ya que al presionar enter / return se asigna el campo.

Finalmente, elimine los componentes Box Collider y MenuMouseHandler dentro del Inspector, ya que no será necesario hacer clic en este texto. Espero que termines con algo como esto:

unity tutorial menus UIunity tutorial menus UIunity tutorial menus UI

Ahora arrastre un prefabricado de recogida a la escena y colóquelo en la pantalla. Puse el mío como se muestra a continuación.

unity tutorial menus UIunity tutorial menus UIunity tutorial menus UI

Luego, duplica el HelpHeader, cámbiale el nombre a HelpPowerups, cambia el Anchor a "upper-left" y copia y pega el párrafo debajo en el campo de texto.

"Verde: + 2 puntos

Rosa: +/- Puntos Aleatorios

Azul: Aumento de velocidad aleatorio"

Vuelve a colocarlo para que tengas algo como lo siguiente.

unity tutorial menus UIunity tutorial menus UIunity tutorial menus UI

Todo lo que queda ahora es agregar un botón Atrás para regresar al menú principal.


Paso 12: El botón Atrás de la página de ayuda

Duplique el HelpBT, renómbrelo BackBT, cambie su texto a "Atrás", configure su rotación a la de su cámara y use la Vista de Escena para reposicionarlo dentro de la Vista del juego. Coloqué el mío en la esquina inferior como se muestra aquí:

unity tutorial menus UIunity tutorial menus UIunity tutorial menus UI

Ahora solo tenemos que actualizar nuestra secuencia de comandos MenuMouseHandler para manejar también los clics del mouse desde BackBT. Agregue lo siguiente else if a la parte inferior de las sentencias OnMouseDown() if:

Esto es casi idéntico al enunciado anterior de iTween, la única diferencia es el ángulo en que gira la cámara: -152 en mi caso. Debes cambiar este número a la rotación Y original de tu cámara (la que anotaste, ¿recuerdas?)

Ahora todo lo que necesita hacer es configurar su cámara de nuevo a su rotación original, el valor que acaba de agregar a la declaración iTween, de modo que esté de nuevo frente al menú principal.Ejecute el juego y su cámara debería girar para revelar la página de ayuda y volver al menú principal.

Felicidades, ¡has terminado!


Conclusión

¡Espero que hayas disfrutado esta sesión de introducción a Unity!

En esta parte, cubrimos el uso de GameObjects como elementos de menú y la biblioteca de interpolación increíblemente poderosa, iTween.

Si desea un desafío adicional, intente usar iTween para cambiar el color del texto en MouseOver y luego de nuevo en MouseExit. (Encontrará una lista de controladores de Mouse en esta página).

O agregue un iTween CameraFade y luego desactívelo cuando el temporizador se agote, luego cargue el menú, en lugar de terminar el juego bruscamente. A continuación, podría retrasar la llamada a Application.LoadLevel(...) utilizando yield WaitForSeconds(...).

¡Déjame saber cómo te va en los comentarios!

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.