Cómo salir del juego en Unity: formas correctas de cerrar un juego

A menudo, cuando estás desarrollando un juego y te diviertes codificando todas las cosas geniales para tu juego, olvidas que tus usuarios deben poder salir del juego. Todo el mundo tiene que tomarse un descanso en algún momento, y necesitará una forma de hacerlo para sus usuarios.

Para salir mediante programación del juego creado con Unity, llama al método Quit de la clase Application, es decir, Application.Quit. Esto le indicará inmediatamente al juego que se cierre. Algunas plataformas, sin embargo, requieren una implementación diferente para que el juego salga correctamente.

Tenga en cuenta que salir del juego usando el método Application.Quit no funcionará cuando se esté ejecutando dentro del Modo de reproducción en Unity Editor. Cree y ejecute el juego primero si desea probar la funcionalidad de salida de su juego.

Voy a entrar en detalles sobre cómo lidiar con varios aspectos relacionados con salir del juego a continuación, así que asegúrate de seguir leyendo.

Cómo salir del juego en Unity

Decirle a tu juego que cierre o salga es una tarea muy simple. Todo lo que tienes que hacer es llamar al método Application.Quit() y el juego se apagará inmediatamente.

using System.Collections; using System.Collections.Generic; using UnityEngine; public class Manager : MonoBehaviour { void Update() { if (Input.GetKey(KeyCode.X)) { Application.Quit(); } } }

Code language: C# (cs)

El script de ejemplo anterior hará que el juego se cierre cuando se presione la tecla «X». Solo asegúrese de que la secuencia de comandos esté correctamente adjunta a un objeto del juego en la escena que se está ejecutando.

El script se adjunta a un objeto del juego.

Importante: Application.Quit() se ignorará mientras el juego se ejecuta en Modo de juego dentro de Unity Editor. Para probar correctamente su funcionalidad, primero debe compilar su juego y luego probarlo en la versión compilada del juego.

Cómo construir tu juego para probar la funcionalidad de dejar de fumar

Como se indicó anteriormente, el método Application.Quit() no funcionará si su juego se ejecuta en Modo de juego dentro de Unity Editor. Tienes que construir tu juego y ejecutarlo fuera de Unity Editor.

Para crear una compilación de juego, vaya a Archivo > Configuración de compilación… o presione Ctrl+Shift+B para abrir la ventana Configuración de compilación.

Archivo > Configuración de compilación…

Agregue las escenas que desee o haga clic en el botón Agregar escenas abiertas para agregar todas las escenas abiertas actualmente a la compilación.

Ventana Configuración de compilación

Seleccione la plataforma en la que desea probar y haga clic en el botón Build And Run. Se le pedirá que elija dónde se guardarán los archivos del juego.

Una vez que haya seleccionado dónde guardará su compilación, espere un momento mientras Unity compila el juego. El juego comenzará una vez que finalice el proceso de compilación, luego puede proceder a probar su juego. Cualquier compilación posterior a esta llevará mucho menos tiempo.

También puede ir a Archivo > Crear y ejecutar o presionar Ctrl+B para crear su juego de inmediato sin seleccionar una plataforma.

Archivo > Construir y ejecutar

Cómo salir del juego a través de un botón en el juego

En lugar de presionar un botón en el teclado para salir del juego, muchas veces querrás el botón de salir como un botón en el juego para que sea más fácil para el jugador.

Vincular un método de un script a un botón en el juego no es difícil de hacer. Toma, intentémoslo ahora mismo.

Primero, creemos un botón y colóquelo en la interfaz de usuario. Puede agregar un botón a la escena haciendo clic con el botón derecho en la ventana de jerarquía o haciendo clic en el signo más en la esquina superior izquierda y seleccionando IU > Botón.

IU > Botón

Esto agregará un botón al lienzo de la interfaz de usuario. Cambiale el nombre a lo que quieras.

Puedes cambiar la etiqueta del botón seleccionando el objeto Texto debajo del objeto del botón y editando el texto en el inspector.

Cambie el texto aquí.

Si su juego es un juego en 3D, es posible que desee activar el modo 2D al ajustar las posiciones de los elementos de la interfaz de usuario.

Activa esto.

Ajuste la posición del botón de salida donde desee que esté.

Una escena de juego con un botón para salir.

Ahora, necesitamos un script para mantener nuestro método para salir del juego.

Vamos a crear un script y ponerlo en algún lugar. Haga clic con el botón derecho en la ventana Proyecto y seleccione Crear > Script C#, o haga clic en el signo más en la esquina superior izquierda de la ventana Proyecto y seleccione Script C#.

Crear > Script C#

Nómbralo como quieras y luego haz doble clic en él para abrir el editor de código.

using System.Collections; using System.Collections.Generic; using UnityEngine; public class Manager : MonoBehaviour { public void QuitGame() { Application.Quit(); } }

Code language: C# (cs)

El script anterior le indicará al juego que se cierre cuando se llame al método QuitGame().

Pero, ¿cómo se llamará al método desde un botón? Hay una manera de hacerlo. Volvamos al objeto de botón creado anteriormente.

Agregue el script que acabamos de crear al objeto de botón. Puede hacerlo arrastrando el archivo de script y soltándolo en el objeto de botón, o puede agregarlo a través del botón Agregar componente en el inspector.

Script agregado al objeto de botón.

Debería poder ver la secuencia de comandos en el inspector una vez que la secuencia de comandos se haya adjuntado correctamente al botón.

El componente Botón

Eche un vistazo en el inspector, debería poder ver un componente llamado «Botón» dentro del objeto de botón similar a la imagen de arriba. La sección «Al hacer clic ()» es donde agregará un método para activar cuando se haga clic en el botón.

Haga clic en el signo más en la parte inferior para agregar un evento On Click vacío a la lista.

Arrastre el componente de secuencia de comandos que está adjunto al botón en el pequeño cuadro que dice «Ninguno (Objeto)» para exponer el componente Botón a varios métodos disponibles en el interior.

Arrastre y suelte el componente de secuencia de comandos en el cuadro.

Luego, haga clic en el cuadro desplegable que dice «Sin función» y seleccione [Your Script’s Class Name] >[MétodopúblicoalquedeseallamarEnestecasoelnombredemisecuenciadecomandosesManageryelmétodosellamaQuitGame()porloqueseráManager>QuitGame()[PublicMethodYouWantToCallInthiscasemyscript’snameisManagerandthemethodiscalledQuitGame()soitwillbeManager>QuitGame()

Gerente > Salir del juego ()

El resultado se parecerá a la imagen de abajo.

¡Y tu estas listo! Cree el juego e intente hacer clic en el botón Salir. Debería salir del juego según lo previsto.

Técnicamente, puede agregar cualquier objeto del juego a la sección Al hacer clic (). Tomará todos los métodos públicos disponibles de todos los componentes dentro de ese objeto y le permitirá seleccionarlos. Entonces, potencialmente, podría tener el script adjunto a un objeto de juego diferente y hacer la llamada desde allí también.

Tenga en cuenta que este método no funciona mientras el juego se ejecuta dentro del Modo de juego en Unity Editor. Y no puedes cerrar los juegos creados para iOS porque no están diseñados para cerrarse. Para obtener más información sobre cómo cerrar una aplicación mediante programación en iOS, le sugiero que eche un vistazo aquí.

Y eso es. ¡Así es como le das a tu juego la capacidad de salir o cerrarse cuando quieras!