49 lines
1.4 KiB
C#
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;
|
|
}
|
|
}
|