PauseMenu.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. using System;
  2. using UnityEngine;
  3. using UnityEngine.UI;
  4. public class PauseMenu : MonoBehaviour
  5. {
  6. private Toggle m_MenuToggle;
  7. private float m_TimeScaleRef = 1f;
  8. private float m_VolumeRef = 1f;
  9. private bool m_Paused;
  10. void Awake()
  11. {
  12. m_MenuToggle = GetComponent <Toggle> ();
  13. }
  14. private void MenuOn ()
  15. {
  16. m_TimeScaleRef = Time.timeScale;
  17. Time.timeScale = 0f;
  18. m_VolumeRef = AudioListener.volume;
  19. AudioListener.volume = 0f;
  20. m_Paused = true;
  21. }
  22. public void MenuOff ()
  23. {
  24. Time.timeScale = m_TimeScaleRef;
  25. AudioListener.volume = m_VolumeRef;
  26. m_Paused = false;
  27. }
  28. public void OnMenuStatusChange ()
  29. {
  30. if (m_MenuToggle.isOn && !m_Paused)
  31. {
  32. MenuOn();
  33. }
  34. else if (!m_MenuToggle.isOn && m_Paused)
  35. {
  36. MenuOff();
  37. }
  38. }
  39. #if !MOBILE_INPUT
  40. void Update()
  41. {
  42. if(Input.GetKeyUp(KeyCode.Escape))
  43. {
  44. m_MenuToggle.isOn = !m_MenuToggle.isOn;
  45. Cursor.visible = m_MenuToggle.isOn;//force the cursor visible if anythign had hidden it
  46. }
  47. }
  48. #endif
  49. }