-
Notifications
You must be signed in to change notification settings - Fork 0
/
MenuManagement.cs
73 lines (64 loc) · 1.97 KB
/
MenuManagement.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
using UnityEngine;
using UnityEngine.UI;
public class MenuManagement : MonoBehaviour
{
[Header("UI Elements")]
public GameObject levelSelectButton;
public GameObject restartButton;
public GameObject pauseButton;
public GameObject helpButton;
public GameObject pauseScreen;
[HideInInspector] public static bool isPaused;
[Header("Time Scale Options")]
[Range(0f, 1f)] public float pauseTimeScale;
[Range(0f, 1f)] public float resumeTimeScale;
[Header("Sound")]
public AudioSource sound;
[Header("Colors")]
public Color pauseColor;
public Color resumeColor;
private AudioSource audioSource;
private Image canvasImage;
private void Start()
{
isPaused = false;
audioSource = GameObject.Find("Music Management").GetComponent<AudioSource>();
canvasImage = GameObject.Find("Canvas").GetComponent<Image>();
canvasImage.enabled = false;
canvasImage.color = resumeColor;
}
public void Pause()
{
levelSelectButton.SetActive(false);
restartButton.SetActive(false);
pauseButton.SetActive(false);
try { helpButton.SetActive(false); } catch { }
pauseScreen.SetActive(true);
isPaused = true;
audioSource.volume = 0.1f;
if (SoundToggle.isToggled)
{
sound.Play();
}
canvasImage.enabled = true;
canvasImage.color = pauseColor;
Time.timeScale = pauseTimeScale;
}
public void Resume()
{
levelSelectButton.SetActive(true);
restartButton.SetActive(true);
pauseButton.SetActive(true);
try { helpButton.SetActive(true); } catch { }
pauseScreen.SetActive(false);
isPaused = false;
audioSource.volume = 1.0f;
if (SoundToggle.isToggled)
{
sound.Play();
}
canvasImage.enabled = false;
canvasImage.color = resumeColor;
Time.timeScale = resumeTimeScale;
}
}