sega 8a6d23b77d Реорг Scripts
Разделено на 4 модуля
- Menu
- Gameplay
- Settings
- Common
2026-07-15 10:49:55 +03:00

50 lines
1.4 KiB
C#

//refactored 12.01.26
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.stateMachine.ChangeState(new MenuState());
}
}
private bool ShouldExit()
{
//опрашиваем кнопки
bool startButtonsPressed = In.GetButton(ButtonPinMapping.startOnePlayer) && In.GetButton(ButtonPinMapping.startTwoPlayers);
bool serviceButtonPressed = In.GetButton(ButtonPinMapping.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;
}
}