better pause menu system

This commit is contained in:
2026-05-03 12:19:08 -05:00
parent 9ba1ff4a1f
commit a689d76de7
10 changed files with 1510 additions and 78 deletions
+30
View File
@@ -0,0 +1,30 @@
using System.Collections.Generic;
using UnityEngine;
public class MenuController : MonoBehaviour
{
public List<MenuScreen> screens;
public void ShowScreen(string screenName)
{
HideAllScreens();
MenuScreen selScreen = screens.Find(x => x.screenName == screenName);
if (selScreen != null)
{
selScreen.Show();
}
else
{
throw new System.Exception("Screen name was not found in list of screens!");
}
}
public void HideAllScreens()
{
foreach (var screen in screens)
{
screen.Hide();
}
}
}
+2
View File
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 2289f767f0db35c459c4aae4d94b05c5
+16
View File
@@ -0,0 +1,16 @@
using UnityEngine;
public class MenuScreen : MonoBehaviour
{
public string screenName;
public void Show()
{
gameObject.SetActive(true);
}
public void Hide()
{
gameObject.SetActive(false);
}
}
+2
View File
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 3ba23d5f6c337c34caaac9a4d8aab191
-19
View File
@@ -3,32 +3,13 @@
public class PauseMenu : MonoBehaviour
{
public Button SettingsButton;
public Button SaveButton;
public Button DeleteSaveButton;
public Button QuitButton;
public GameObject SettingsMenu;
public void ReloadReferences()
{
// pull all game objs here
}
void Start()
{
SettingsButton.onClick.AddListener(ShowSettings);
SaveButton.onClick.AddListener(SaveSystem.Save);
DeleteSaveButton.onClick.AddListener(SaveSystem.ClearSave);
}
void Update()
{
}
void ShowSettings()
{
SettingsMenu.SetActive(true);
}
}
+41 -34
View File
@@ -3838,17 +3838,6 @@ Transform:
- {fileID: 2146681817}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1889534305 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 249075524138301096, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
m_PrefabInstance: {fileID: 6325623361260993107}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Button
--- !u!1 &1892268938
GameObject:
m_ObjectHideFlags: 0
@@ -4386,6 +4375,34 @@ PrefabInstance:
serializedVersion: 3
m_TransformParent: {fileID: 1704696510}
m_Modifications:
- target: {fileID: 249075524138301096, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
value: 5
objectReference: {fileID: 0}
- target: {fileID: 249075524138301096, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target
value:
objectReference: {fileID: 6325623361260993111}
- target: {fileID: 249075524138301096, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
value: ShowScreen
objectReference: {fileID: 0}
- target: {fileID: 249075524138301096, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
value: MenuController, Assembly-CSharp
objectReference: {fileID: 0}
- target: {fileID: 249075524138301096, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_StringArgument
value: Settings
objectReference: {fileID: 0}
- target: {fileID: 249075524138301096, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
value: UnityEngine.Object, UnityEngine
objectReference: {fileID: 0}
- target: {fileID: 626836106421650934, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
propertyPath: m_TagString
value: Untagged
objectReference: {fileID: 0}
- target: {fileID: 818899427131401759, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
propertyPath: m_AnchorMax.y
value: 0
@@ -4394,6 +4411,10 @@ PrefabInstance:
propertyPath: m_Name
value: UI
objectReference: {fileID: 0}
- target: {fileID: 1376587328550839904, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
propertyPath: m_TagString
value: MenuController
objectReference: {fileID: 0}
- target: {fileID: 2975696880262954876, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
propertyPath: m_AnchorMax.y
value: 0
@@ -4402,22 +4423,10 @@ PrefabInstance:
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4155624016714589187, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
propertyPath: m_AnchoredPosition.y
value: -201
objectReference: {fileID: 0}
- target: {fileID: 4264548731807291060, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4666577222808766051, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
propertyPath: m_AnchoredPosition.y
value: -330.1
objectReference: {fileID: 0}
- target: {fileID: 4906462856215206936, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
propertyPath: m_AnchoredPosition.y
value: -76
objectReference: {fileID: 0}
- target: {fileID: 5101319162034548862, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
propertyPath: m_AnchorMax.y
value: 0
@@ -4470,14 +4479,6 @@ PrefabInstance:
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8504793874200787636, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
propertyPath: SettingsMenu
value:
objectReference: {fileID: 6325623361260993109}
- target: {fileID: 8504793874200787636, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
propertyPath: SettingsButton
value:
objectReference: {fileID: 1889534305}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
@@ -4488,11 +4489,17 @@ Transform:
m_CorrespondingSourceObject: {fileID: 6792308726050395253, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
m_PrefabInstance: {fileID: 6325623361260993107}
m_PrefabAsset: {fileID: 0}
--- !u!1 &6325623361260993109 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 3851509619645923519, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
--- !u!114 &6325623361260993111 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 6476180199089286077, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
m_PrefabInstance: {fileID: 6325623361260993107}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2289f767f0db35c459c4aae4d94b05c5, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::MenuController
--- !u!1001 &7959480261809233915
PrefabInstance:
m_ObjectHideFlags: 0
+4 -5
View File
@@ -14,7 +14,7 @@ public class GameManager : MonoBehaviour
public PlayerManager PlayerManager { get; private set; }
public Inventory Inventory { get; private set; }
public Storybools Storybools { get; private set; }
public PauseMenu PauseMenu { get; private set; }
public MenuController MenuController { get; private set; }
public SoundSettingManager SoundSettingManager { get; private set; }
public PlayerController PlayerController { get; private set; }
public Image BlackScreen { get; private set; }
@@ -57,16 +57,15 @@ private void ReloadReferences()
Instance.DialogueManager = GetComponent<DialogueManager>();
Instance.DialogueManager.ReloadReferences();
Instance.PauseMenu = GameObject.FindWithTag("PauseMenu").GetComponent<PauseMenu>();
Instance.PauseMenu.ReloadReferences();
Instance.PauseMenu.gameObject.SetActive(false);
Instance.Inventory = GetComponent<Inventory>();
Instance.TimeManager = GetComponent<TimeManager>();
Instance.PlayerManager = GetComponent<PlayerManager>();
Instance.SoundSettingManager = GetComponent<SoundSettingManager>();
Instance.SoundSettingManager.ReloadReferences();
Instance.MenuController = GameObject.FindWithTag("MenuController").GetComponent<MenuController>();
Instance.MenuController.HideAllScreens();
}
#region Map Load Handling
@@ -50,14 +50,14 @@ void Update()
Time.timeScale = 0;
canUseTools = false;
hasControl = false;
GameManager.Instance.PauseMenu.gameObject.SetActive(true);
GameManager.Instance.MenuController.ShowScreen("Pause");
}
else
{
Time.timeScale = 1;
canUseTools = true;
hasControl = true;
GameManager.Instance.PauseMenu.gameObject.SetActive(false);
GameManager.Instance.MenuController.HideAllScreens();
}
paused = !paused;
+1412 -17
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -13,10 +13,10 @@ TagManager:
- DialogItemText
- ItemPickupText
- DialogContainer
- PauseMenu
- MasterSlider
- SfxSlider
- MusicSlider
- MenuController
layers:
- Default
- TransparentFX