Untitled
unknown
c_cpp
3 years ago
3.5 kB
8
Indexable
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class MenuBehaviour : MonoBehaviour
{
// Start is called before the first frame update
public AudioClip sonidoAbrir;
public AudioClip sonidoScroll;
public AudioClip sonidoGuardar;
public AudioClip sonidoElegir;
[SerializeField] private AudioSource audio;
public GameObject thisGAMEOBJECT;
public bool isOpened = false;
public Image currentImage;
public Sprite[] allStates = new Sprite[5];
[SerializeField] public PlayerBehaviour Player;
int lastStateMenu = 3;
protected int m_currentStateMenu;
public int currentStateMenu {
get { return m_currentStateMenu; }
set {
if (value > 5) { m_currentStateMenu = 5; }
else if (value < 1) { m_currentStateMenu = 1; }
else m_currentStateMenu = value;
}
}
//ESTA VARIABLE HACE QUE EL MENU NO SE PUEDA ABRIR (PARA COMBATE O CINEMATICAS)
public bool menuNoAvailable = false;
void Start()
{
currentImage = GetComponent<Image>();
}
// Update is called once per frame
void Update()
{
//Si presiono ESC se cierra
if (Input.GetKeyDown(KeyCode.Escape) && isOpened == true)
{
cerrarMenu();
}
//Si cambia currentStateMenu cambio el sprite
if (currentStateMenu != lastStateMenu)
{
lastStateMenu = currentStateMenu;
playAudio(sonidoScroll);
currentImage.sprite = allStates[currentStateMenu - 1];
}
//Si presiono ENTER...
if (Input.GetKeyDown(KeyCode.Return))
{
abrirBoton();
}
Debug.Log(currentStateMenu);
}
private void OnEnable()
{
m_currentStateMenu = 3;
abrirMenu();
}
void abrirMenu()
{
//Se ha abierto desde Event Manager
isOpened = true;
playAudio(sonidoAbrir);
Player.characterCanMove = false;
StartCoroutine(esperarInput());
}
IEnumerator esperarInput()
{
while (!Input.GetKeyDown(KeyCode.UpArrow) || !Input.GetKeyDown(KeyCode.DownArrow)) {
if (Input.GetKeyDown(KeyCode.UpArrow)) { procesarInput(KeyCode.UpArrow); }
if (Input.GetKeyDown(KeyCode.DownArrow)) { procesarInput(KeyCode.DownArrow); }
yield return null;
}
}
void procesarInput(KeyCode input)
{
if (input == KeyCode.UpArrow) { currentStateMenu--; }
if (input == KeyCode.DownArrow) { currentStateMenu++; }
}
void cerrarMenu()
{
isOpened = false;
Player.characterCanMove = true;
thisGAMEOBJECT.SetActive(false);
}
void playAudio(AudioClip sonido)
{
audio.clip = sonido;
audio.Play();
}
void abrirBoton()
{
playAudio(sonidoElegir);
StartCoroutine(waitUntilFeedback());
}
IEnumerator waitUntilFeedback()
{
if (currentStateMenu == 1) {; }
else if (currentStateMenu == 2) {; }
else if (currentStateMenu == 3) {; }
else if (currentStateMenu == 4) { /* llamarGuardar */ ; }
else if (currentStateMenu == 5) {; }
yield return null;
}
}
Editor is loading...