49 lines
1.1 KiB
C#
49 lines
1.1 KiB
C#
using UnityEngine;
|
|
|
|
namespace Code.GameplayServices
|
|
{
|
|
public class GameplayManager : MonoBehaviour
|
|
{
|
|
public static GameplayManager Instance { get; private set; }
|
|
|
|
private bool _onPause;
|
|
public bool OnPause => _onPause;
|
|
|
|
[SerializeField] [Range(0f, 30f)] private float gameSpeed;
|
|
|
|
private float _currentGameSpeed;
|
|
public float GameSpeed => _currentGameSpeed;
|
|
|
|
private void Awake()
|
|
{
|
|
Instance = this;
|
|
_currentGameSpeed = gameSpeed;
|
|
}
|
|
|
|
public void RestartGame()
|
|
{
|
|
ResetGame();
|
|
ResumeGame();
|
|
}
|
|
public void PlayerDead()
|
|
{
|
|
PauseGame();
|
|
}
|
|
|
|
public void PauseGame()
|
|
{
|
|
_onPause = true;
|
|
_currentGameSpeed = 0f;
|
|
}
|
|
public void ResumeGame()
|
|
{
|
|
_onPause = false;
|
|
_currentGameSpeed = gameSpeed;
|
|
}
|
|
private void ResetGame()
|
|
{
|
|
PassingObjectsManager.Instance.ResetObjects();
|
|
PlayerScoreService.Instance.ResetScore();
|
|
}
|
|
}
|
|
} |