Hi! I'm having trouble turning on a display whenever the spacebar gets pressed (the game should pause and display that time has stopped). Here is my code that does that:
public class TimeController : MonoBehaviour
{
public static TimeController Instance;
[SerializeField] private GameObject _pauseDisplay;
private bool _receivingInput = false;
private TimeState _state = TimeState.Paused;
private TimeState _previousState = TimeState.Speed1x;
void Awake()
{
Instance = this;
}
// Update is called once per frame
void Update()
{
if (_receivingInput)
{
InputUpdate();
}
}
void InputUpdate()
{
if (Keyboard.current.spaceKey.wasPressedThisFrame)
{
Debug.Log("TIME: Spacebar pressed, toggling time scale");
ToggleTime();
}
}
private void ToggleTime()
{
if (_state == TimeState.Paused)
{
ResumeTime();
}
else
{
PauseTime();
}
}
public void PauseTime()
{
Debug.Log("TIME: Time is paused!");
_pauseDisplay.SetActive(true);
_previousState = _state;
_state = TimeState.Paused;
SetTimeScale(0);
}
public void ResumeTime()
{
_pauseDisplay.SetActive(false);
_state = _previousState;
SetTimeScale((int) _state);
}
}