En la novena sesión, reestructuramos parte del proyecto en Unity, retocamos algunos scripts y creamos nuevas escenas para separar los niveles del menú principal y el menú de selección de nivel.
A continuación os dejamos el vídeo que se ha estrenado hoy viernes 10 de julio.
Podéis descargar los dos nuevos scripts aquí:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LanguageManager : MonoBehaviour
{
public static int MainLanguage = 0; // Variable para marcar el idioma del juego
// 0 = catalán, 1 = castellano, 2 = inglés
[SerializeField] MultilanguageText[] TextsToChange;
[SerializeField] PlayerPrefsSaver PlayerSaver;
private void Awake()
{
PlayerSaver.LoadGame();
MainLanguage = PlayerSaver.getMainLanguage();
}
public void ChangeLanguage(int languageIndex)
{
MainLanguage = languageIndex;
PlayerSaver.setMainLanguage(MainLanguage);
PlayerSaver.SaveGame();
foreach (MultilanguageText text in TextsToChange)
{
text.UpdateText();
}
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PauseManager : MonoBehaviour
{
[SerializeField] GameObject PanelPausa;
[SerializeField] AudioManager MiAudioManager; // Referencia al AudioManager
// Función para pausar el juego
public void PausarJuego()
{
PanelPausa.SetActive(true);
// Para pausar el juego, hemos de poner Time.timeScale a 0. Esto pausará todos los procesos que usen Time.
if (Time.timeScale == 0) { return; } // Si la escala de tiempo es 0, no hacemos nada -> return sale de la función.
Time.timeScale = 0; // Si no hemos salido de la función, ejecutamos ésta línea y cambiamos la timeScale a 0.
MiAudioManager.PlayTheme(“theme_Pause”); // Le damos al play del tema con el nombre “theme_Pausa”.
}
// Función para continuar el juego
public void ContinuarJuego()
{
PanelPausa.SetActive(false);
if (Time.timeScale == 1) { return; } // Si la escala de tiempo es 1, no hacemos nada -> return sale de la función.
Time.timeScale = 1; // Si no hemos salido de la función, ejecutamos ésta línea y cambiamos la timeScale a 1.
MiAudioManager.PlayTheme(“theme_Game”); // Reproducimos el tema del juego
}
}
¡Esperamos que os sea de ayuda! ¡Nos vemos en la próxima sesión!