-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMenuUI.cs
More file actions
112 lines (84 loc) · 2.85 KB
/
MenuUI.cs
File metadata and controls
112 lines (84 loc) · 2.85 KB
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
using System.Collections;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class MenuUI : MonoBehaviour
{
[SerializeField] private Animator menuAnimator = null;
static readonly int OPEN_MENU = Animator.StringToHash("Open Menu");
static readonly int CLOSE_MENU = Animator.StringToHash("Close Menu");
private float durationAnimation = -1f;
[Header("Open Button")]
[SerializeField] private Button openMenuButton = null;
[Header("Menu Panel Buttons")]
[SerializeField] private Button resumeButton = null;
[SerializeField] private Button settingsButton = null;
[SerializeField] private Button toMainButton = null;
[SerializeField] private Button exitButton = null;
[Header("Are you sure Panel")]
[SerializeField] private Button yesButton = null;
[SerializeField] private Button noButton = null;
[Header("Activatable Menu Objects")]
[SerializeField] private GameObject yesNoPanel = null;
[SerializeField] private GameObject menuObject = null;
void Start()
{
durationAnimation = menuAnimator.GetCurrentAnimatorClipInfo(0)[0].clip.length;
openMenuButton.onClick.AddListener(OpenMenu);
resumeButton.onClick.AddListener(CloseMenu);
settingsButton.onClick.AddListener(OpenSettings);
toMainButton.onClick.AddListener(GoToMainMenu);
exitButton.onClick.AddListener(OpenAreYouSurePanel);
yesButton.onClick.AddListener(ExitApplication);
noButton.onClick.AddListener(CloseAreYouSurePanel);
//Start with menu closed
menuObject.SetActive(false);
}
private IEnumerator HandleMenuClose()
{
menuAnimator.SetTrigger(CLOSE_MENU);
float countdown = durationAnimation;
while (countdown > 0)
{
countdown -= Time.deltaTime;
yield return null;
}
menuObject.SetActive(false);
}
private void OpenMenu()
{
if (menuObject.activeSelf)
return;
resumeButton.enabled = true;
menuObject.SetActive(true);
menuAnimator.SetTrigger(OPEN_MENU);
}
private void CloseMenu()
{
if (!menuObject.activeSelf)
return;
resumeButton.enabled = false;
CloseAreYouSurePanel();
StartCoroutine(HandleMenuClose());
}
private void OpenAreYouSurePanel()
{
yesNoPanel.SetActive(true);
}
private void CloseAreYouSurePanel()
{
yesNoPanel.SetActive(false);
}
private void OpenSettings()
{
Debug.Log("Opened Settings");
}
private void GoToMainMenu()
{
SceneManager.LoadScene("Main Menu");
}
private void ExitApplication()
{
Application.Quit();
}
}