49 lines
1.4 KiB
C#

using UnityEngine;
public class SettingsState : IState
{
float elapsedTime = 0;
float timeToExit = 3f;
public void enter()
{
//SettingsManager.OnSettingsChanged?.Invoke();
GameManager.instance.AdminPanel.SetActive(true);
elapsedTime = 0;
}
public void exit()
{
GameManager.instance.AdminPanel.SetActive(false);
}
public void update()
{
if (ShouldExit())
{
SoundManager.instance.playChoose();
GameManager.instance.GotoMenu();
}
}
private bool ShouldExit()
{
//опрашиваем кнопки
bool startButtonsPressed = In.GetButton(InSignal.startOnePlayer) && In.GetButton(InSignal.startTwoPlayers);
bool serviceButtonPressed = In.GetButton(InSignal.secret) || Input.GetKey(KeyCode.F5);
bool exitPressed = startButtonsPressed || serviceButtonPressed;
//считаем таймеры
if (exitPressed)
elapsedTime += Time.deltaTime;
else
elapsedTime -= Time.deltaTime;
//подгоняем прошедшее время к интервалу
elapsedTime = Mathf.Clamp(elapsedTime, 0f, timeToExit);
//Если жали столько, сколько надо для выхода - надо выходить
return elapsedTime == timeToExit;
}
}