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; } }