TEMA 8 CREACIÓN DEL GAMEMANAGER (continuación)

Sin valoraciones

TEMA 8 CREACIÓN DEL GAMEMANAGER (continuación)

Desde él tendremos el componente Broadcasting Event que es de donde llamaremos al objeto que se accionará cuando el evento se cumpla. Pero lo primero será crear dicho objeto desde fuera para luego añadirlo a este apartado.

TEMA 8 CREACIÓN DEL GAMEMANAGER (continuación)

Abrimos la ventana Windows y seleccionamos SOCodeGenerations y marcamos las casillas de GameEvent y EventListener

videojuego

TEMA 8 CREACIÓN DEL GAMEMANAGER (continuación)

Escribiremos en el apartado que pone Type Name> GameStateSO

TEMA 8 CREACIÓN DEL GAMEMANAGER (continuación)

Mientras que en el Menu Name escribiremos Game State Change

TEMA 8 CREACIÓN DEL GAMEMANAGER (continuación)

Después pulsaremos en el botón de Generate

Abriremos la carpeta de Events dentro de la carpeta ScriptableObjects y crearemos un evento. Botón derecho>Create>GameEvents>GameState Change

TEMA 8 CREACIÓN DEL GAMEMANAGER (continuación)

Y lo renombramos como GameStateChangedGameEvent

TEMA 8 CREACIÓN DEL GAMEMANAGER (continuación)

Creado este evento nos volvemos a la carpeta donde tenemos el GameManager

TEMA 8 CREACIÓN DEL GAMEMANAGER (continuación)

Y desde el Inspector añadiremos el componente que acabamos de crear en el apartado de Broadcasting Events

TEMA 8 CREACIÓN DEL GAMEMANAGER (continuación)

De esta manera el GameManager estará emitiendo eventos cada vez que cambie

Ahora nos vamos a la carpeta de Escenas dentro de nuestro proyecto y configuraremos nuestras escenas una a una con este gameEvent. Abrimos MainMenu

TEMA 8 CREACIÓN DEL GAMEMANAGER (continuación)

Dentro abrimos el objeto MenuInitializer el cúal dentro de su configuración desde el inspector tenemos ya un evento llamado OnScendeReady

videojuego

TEMA 8 CREACIÓN DEL GAMEMANAGER (continuación)

Antes deberemos añadir un componente llamado Game StateChanger y luego en GameManager añadimos el objeto programable GameManager

TEMA 8 CREACIÓN DEL GAMEMANAGER (continuación)

Luego dentro del evento que pone On Scene Ready le damos al botón +

TEMA 8 CREACIÓN DEL GAMEMANAGER (continuación)

Arrastramos el script Game State Changers al recuadro que se ve marcado

TEMA 8 CREACIÓN DEL GAMEMANAGER (continuación)

Y desde el apartado de la Función seleccionamos la opción de GameStateChanger>- SetGameState de esta manera llama al estado que nosotros le digamos

TEMA 8 CREACIÓN DEL GAMEMANAGER (continuación)

Que en este caso el estado al que llamaremos será el MainMenu

TEMA 8 CREACIÓN DEL GAMEMANAGER (continuación)

TEMA 8 CREACIÓN DEL GAMEMANAGER (continuación)

Es decir que cuando le demos a play y estemos dentro del MainMenu cuando termine de cargar lo que son las dependencias llamará a esta acción y esta acción la hemos configurado a golpe de clic que le diga al Game Manager que actualmente estamos en el Main menu

TEMA 8 CREACIÓN DEL GAMEMANAGER (continuación)

Pulsamos la opción de Overrides y luego presionamos el botón de Apply All y guardamos todo lo que hemos hecho hasta ahora

 

El GameManager en Unity es a menudo un componente crucial que gestiona aspectos globales del juego, como la puntuación, el estado del juego, la gestión de niveles, y más:

1. Crear un objeto vacío para el GameManager:

1.1. En el Editor de Unity:

  • Crea un objeto vacío llamado «GameManager» en tu escena.

2. Crear el script GameManager:

2.1. Crea un nuevo script llamado «GameManager»:

  • Haz clic con el botón derecho en el Assets -> Create -> C# Script.
  • Nombre del script: GameManager.

2.2. Abre el script en tu editor de código preferido:

  • Define variables globales para gestionar el estado del juego, la puntuación, el tiempo, etc.
csharp
using UnityEngine; public class GameManager : MonoBehaviour { public static GameManager instance; // Variables de juego public int playerScore = 0; public bool isGameOver = false; private void Awake() { // Implementa el patrón Singleton para asegurar una única instancia del GameManager if (instance == null) { instance = this; } else { Destroy(gameObject); } } void Start() { // Inicializa cualquier configuración inicial del juego // Puedes cargar niveles, establecer valores predeterminados, etc. } void Update(){ // Aquí puedes verificar condiciones para el final del juego, actualizar puntuaciones, etc. if (isGameOver) { // Lógica para el final del juego } } // Otros métodos útilespublic void IncreaseScore(int amount) { // Método para aumentar la puntuación del jugadorplayerScore += amount; // Puedes añadir aquí lógica adicional, como actualizar la interfaz de usuario } public void GameOver() { // Método para llamar al final del juegoisGameOver = true; // Puedes realizar acciones adicionales, como mostrar un menú de fin de juego } }

3. Asignar el script al objeto GameManager:

3.1. Arrastra y suelta el script GameManager al objeto GameManager en tu escena.

4. Utilizar el GameManager desde otros scripts:

4.1. Accede al GameManager desde otros scripts:

  • Puedes acceder a la instancia del GameManager desde cualquier otro script usando GameManager.instance.
csharp
// Ejemplo de cómo aumentar la puntuación desde otro scriptGameManager.instance.IncreaseScore(10);

Compártelo en tus redes

Share on facebook
Share on twitter
Share on linkedin
Share on pinterest

Valore este curso

Deja una respuesta

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

Utilizamos cookies para asegurar que damos la mejor experiencia al usuario en nuestra web. Si sigues utilizando este sitio asumimos que estás de acuerdo. VER