musicm122

Unity 4.6 UI Pause Menu with Input Access

Sep 18th, 2014
440
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.08 KB | None | 0 0
  1. public class PlayerInGameMenu : MonoBehaviour
  2. {
  3.   public EventSystem eventSystem;
  4.   public bool IsUsingDebugging = true;
  5.  
  6.   Selectable SelectedButton;
  7.   public Selectable Status;
  8.   public Selectable Settings;
  9.   public Selectable Save;
  10.   public Selectable Quit;
  11.  
  12.   public bool Paused;
  13.  
  14.   List<Selectable> buttons;
  15.   int selecteButtonIndex = 0;
  16.  
  17.   public Canvas Menu;
  18.  
  19.   void Start()
  20.   {
  21.     Menu.enabled = false;
  22.     buttons = new List<Selectable>();
  23.     buttons.Add(Status);
  24.     buttons.Add(Settings);
  25.     buttons.Add(Save);
  26.     buttons.Add(Quit);
  27.     SelectedButton = buttons[0];
  28.  
  29.   }
  30.  
  31.   void Update()
  32.   {
  33.    
  34.     CheckInput();
  35.  
  36.     if (Paused && !Menu.enabled)
  37.     {
  38.       ShowMenu();
  39.     }
  40.     else if (!Paused && Menu.enabled)
  41.     {
  42.       HideMenu();
  43.     }
  44.   }
  45.  
  46.   void ShowMenu()
  47.   {
  48.     Paused = true;
  49.     Menu.enabled = true;
  50.     Time.timeScale = 0.0f;
  51.   }
  52.  
  53.   void HideMenu()
  54.   {
  55.     if (Menu.enabled)
  56.     {
  57.       Paused = false;
  58.       Menu.enabled = false;
  59.       Time.timeScale = 1.0f;
  60.     }
  61.   }
  62.  
  63.   void CheckInput()
  64.   {
  65.     if (cInput.GetKeyDown("Pause"))
  66.     {
  67.       Paused = !Paused;
  68.       SelectedButton = buttons[selecteButtonIndex];
  69.       eventSystem.SetSelectedGameObject(SelectedButton.gameObject, new BaseEventData(eventSystem));
  70.     }
  71.  
  72.     if (Paused)
  73.     {
  74.       float v = cInput.GetAxis("Vertical");
  75.  
  76.       if (v >= 0.5)
  77.       {
  78.         StartCoroutine(CoroutineUtil.DeferredExecutorByEndOfFrame(() =>
  79.         {
  80.           GoDown();
  81.         }));
  82.       }
  83.       else if (v <= -0.5)
  84.       {
  85.         StartCoroutine(CoroutineUtil.DeferredExecutorByEndOfFrame(() =>
  86.         {
  87.           GoUp();
  88.         }));
  89.       }
  90.     }
  91.   }
  92.  
  93.   void GoDown()
  94.   {
  95.     if (selecteButtonIndex > buttons.Count - 1)
  96.     {
  97.       selecteButtonIndex = buttons.Count - 1;
  98.     }
  99.     else
  100.     {
  101.       selecteButtonIndex = selecteButtonIndex + 1;
  102.     }
  103.   }
  104.  
  105.   void GoUp()
  106.   {
  107.     if (selecteButtonIndex < 0)
  108.     {
  109.       selecteButtonIndex = 0;
  110.     }
  111.     else
  112.     {
  113.       selecteButtonIndex = selecteButtonIndex - 1;
  114.     }
  115.   }
  116. }
Advertisement
Add Comment
Please, Sign In to add comment