Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit a3b10e0

Browse files
Tutorial & Credits in Menu
added buttons to access the tutorial and the credits menu from the main menu (neither are fully implemented yet but they can now be accessed)
1 parent e596019 commit a3b10e0

File tree

12 files changed

+9610
-5451
lines changed

12 files changed

+9610
-5451
lines changed

‎Native/Assets/Loading Screen.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
using System.Collections;
2+
using System.Collections.Generic;
3+
using UnityEngine;
4+
using UnityEngine.SceneManagement;
5+
using UnityEngine.UI;
6+
7+
public class SceneLoadingManager : MonoBehaviour
8+
{
9+
// singleton
10+
public static SceneLoadingManager instance;
11+
12+
// variables
13+
public GameObject loadingScreen;
14+
public Slider slider;
15+
16+
17+
void Awake()
18+
{
19+
// create the singletone if there is not already one (if there is already one commit suicide)
20+
if (instance == null)
21+
{
22+
instance = this;
23+
DontDestroyOnLoad(gameObject);
24+
DontDestroyOnLoad(loadingScreen);
25+
}
26+
else
27+
Destroy(gameObject);
28+
}
29+
30+
// method to load scenes
31+
public void loadscene(int scene)
32+
{
33+
StartCoroutine(loadSceneAsync(scene));
34+
}
35+
36+
IEnumerator loadSceneAsync(int ID)
37+
{
38+
AsyncOperation operation = SceneManager.LoadSceneAsync(ID);
39+
loadingScreen.SetActive(true);
40+
while (!operation.isDone)
41+
{
42+
float progression = Mathf.Clamp01(operation.progress);
43+
slider.value = progression;
44+
yield return null;
45+
}
46+
loadingScreen.SetActive(false);
47+
}
48+
}

‎Native/Assets/Loading Screen/SceneLoadingManager.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎Native/Assets/Menus/EndScreen.cs

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,20 +66,41 @@ public void Update()
6666
public void replayButton()
6767
{
6868
playerInput.SwitchCurrentActionMap("Player_Map");
69-
SceneManager.LoadSceneAsync(gameManager.currentSceneIndex);
69+
try
70+
{
71+
SceneLoadingManager.instance.loadscene(gameManager.currentSceneIndex);
72+
}
73+
catch
74+
{
75+
print("Not Started From Main Menu");
76+
}
7077
Time.timeScale = 1f;
7178
Destroy(gameManager.gameObject);
7279
}
7380
public void menuButton()
7481
{
7582
Time.timeScale = 1f;
76-
SceneManager.LoadScene(0);
83+
try
84+
{
85+
SceneLoadingManager.instance.loadscene(0);
86+
}
87+
catch
88+
{
89+
print("Not Started From Main Menu");
90+
}
7791
Destroy(gameManager.gameObject);
7892
}
7993
public void nextButton()
8094
{
8195
Time.timeScale = 1f;
82-
SceneManager.LoadSceneAsync(gameManager.currentFloor + gameManager.currentSceneIndex + 1);
96+
try
97+
{
98+
SceneLoadingManager.instance.loadscene(gameManager.currentFloor + gameManager.currentSceneIndex + 1);
99+
}
100+
catch
101+
{
102+
print("Not Started From Main Menu");
103+
}
83104
Destroy(gameManager.gameObject);
84105
}
85106

‎Native/Assets/Menus/MenuManager.cs

Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
public class MenuManager : MonoBehaviour
1111
{
12+
[Header("########################################")]
1213
[Header("Input")]
1314
public PlayerInput playerInput;
1415
public InputActionReference Up;
@@ -18,11 +19,13 @@ public class MenuManager : MonoBehaviour
1819
public InputActionReference A;
1920
public InputActionReference B;
2021

22+
[Header("########################################")]
2123
[Header("Main Screen")]
2224
public GameObject mainScreen;
2325
public GameObject[] buttons;
2426
public int curSelected;
2527

28+
[Header("########################################")]
2629
[Header("Level Select Screen")]
2730
public GameObject levelSelectScreen;
2831
public GameObject sorter;
@@ -31,6 +34,7 @@ public class MenuManager : MonoBehaviour
3134
public int[] currentLevelSceneIndex;
3235
private bool prematureUpdateCall = false;
3336

37+
[Header("########################################")]
3438
[Header("Level Info Screen")]
3539
public GameObject levelInfo;
3640
public int level;
@@ -39,18 +43,26 @@ public class MenuManager : MonoBehaviour
3943
public TMP_Text levelInfoText;
4044
public Image levelImage;
4145

46+
[Header("########################################")]
47+
[Header("Credits Screen")]
48+
public GameObject creditsUI;
49+
50+
[Header("########################################")]
4251
[Header("Settings Screen")]
4352
public GameObject settingsScreen;
4453
public GameObject[] settingsButtons;
4554
public int settingsCurSelected;
4655
private bool inSettings = false;
4756

57+
[Header("########################################")]
4858
[Header("General Settings")]
4959
public GameObject settingsGeneralOptions;
5060

61+
[Header("########################################")]
5162
[Header("Sound Settings")]
5263
public GameObject settingsSoundOptions;
5364

65+
[Header("########################################")]
5466
[Header("Controls Settings")]
5567
public GameObject settingsControlOptions;
5668
public GameObject[] controlSettingButtons;
@@ -120,7 +132,7 @@ void Update()
120132
{
121133
if (Up.action.WasPressedThisFrame() && curSelected > 0)
122134
curSelected--;
123-
else if (Down.action.WasPressedThisFrame() && curSelected < 3)
135+
else if (Down.action.WasPressedThisFrame() && curSelected < buttons.Length-1)
124136
curSelected++;
125137
EventSystem.current.SetSelectedGameObject(null);
126138
EventSystem.current.SetSelectedGameObject(buttons[curSelected]);
@@ -172,7 +184,7 @@ void Update()
172184
}
173185
else if (A.action.WasPressedThisFrame())
174186
{
175-
SceneManager.LoadSceneAsync(level);
187+
SceneLoadingManager.instance.loadscene(level);
176188
Debug.Log("LOAD LEVEL: " + (level).ToString());
177189
}
178190
}
@@ -257,6 +269,14 @@ void Update()
257269
}
258270
}
259271
}
272+
else if (creditsUI.activeInHierarchy && !prematureUpdateCall)
273+
{
274+
if (B.action.WasPressedThisFrame())
275+
{
276+
creditsUI.SetActive(false);
277+
mainScreen.SetActive(true);
278+
}
279+
}
260280
prematureUpdateCall = false;
261281
}
262282

@@ -294,15 +314,27 @@ public void PlayPressed()
294314

295315
public void PvPPressed()
296316
{
297-
SceneManager.LoadSceneAsync(16);
317+
SceneLoadingManager.instance.loadscene(16);
298318
}
319+
320+
public void TutorialPressed()
321+
{
322+
SceneLoadingManager.instance.loadscene(1);
323+
}
324+
299325
public void SettingsPressed()
300326
{
301327
mainScreen.SetActive(false);
302328
settingsScreen.SetActive(true);
303329
prematureUpdateCall = true;
304330
}
305331

332+
public void CreditsPressed()
333+
{
334+
mainScreen.SetActive(false);
335+
creditsUI.SetActive(true);
336+
}
337+
306338
public void ExitPressed()
307339
{
308340
Application.Quit();

‎Native/Assets/Menus/PauseMenu.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,15 @@ public void menuButton()
4949
{
5050
Time.timeScale = 1f;
5151
Destroy(GameObject.FindGameObjectWithTag("MANAGER").GetComponent<GameManager>().gameObject);
52-
SceneManager.LoadScene(0);
52+
53+
try
54+
{
55+
SceneLoadingManager.instance.loadscene(0);
56+
}
57+
catch
58+
{
59+
print("Not Started From Main Menu");
60+
}
5361
}
5462
public void exitButton()
5563
{

‎Native/Assets/Progression/GameManager.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,14 @@ public void stairs()
6868
if (currentFloor < maxFloor)
6969
{
7070
currentFloor++;
71-
SceneManager.LoadSceneAsync(currentFloor + currentSceneIndex);
71+
try
72+
{
73+
SceneLoadingManager.instance.loadscene(currentFloor + currentSceneIndex);
74+
}
75+
catch
76+
{
77+
print("Not Started From Main Menu");
78+
}
7279
}
7380
else
7481
{

‎Native/Assets/PvP/Scripts/PvP_EndManager.cs

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,10 +96,24 @@ public void Update()
9696

9797
public void restart()
9898
{
99-
SceneManager.LoadSceneAsync(16);
99+
try
100+
{
101+
SceneLoadingManager.instance.loadscene(16);
102+
}
103+
catch
104+
{
105+
print("Not Started From Main Menu");
106+
}
100107
}
101108
public void mainMenu()
102109
{
103-
SceneManager.LoadSceneAsync(0);
110+
try
111+
{
112+
SceneLoadingManager.instance.loadscene(0);
113+
}
114+
catch
115+
{
116+
print("Not Started From Main Menu");
117+
}
104118
}
105119
}

‎Native/Assets/PvP/Scripts/PvP_PauseManager.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,14 @@ public void resume()
5454
public void menu()
5555
{
5656
Time.timeScale = 1f;
57-
SceneManager.LoadSceneAsync(0);
57+
try
58+
{
59+
SceneLoadingManager.instance.loadscene(0);
60+
}
61+
catch
62+
{
63+
print("Not Started From Main Menu");
64+
}
5865
}
5966

6067
public void exit()

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /