Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- using UnityEngine.SceneManagement;
- public class PauseMenu : MonoBehaviour {
- Transform[] rightColumn;
- Transform[] leftColumn;
- GameObject canvas;
- PlayerCamera playerCamera;
- Sprite boxWCross, boxWOCross;
- List<Transform> rightList = new List<Transform>();
- List<Transform> leftList = new List<Transform>();
- int listIndex;
- int maxIndex, minIndex = 0;
- bool isRightColumn;
- bool delay = true;
- bool isInvertedH, isInvertedV;
- bool resumeGame = false;
- float counter = 0;
- SelectedColumn column;
- enum SelectedColumn
- {
- left,
- right
- }
- public void Initialize()
- {
- rightColumn = GameObject.Find("rightColumn").transform.GetComponentsInChildren<Transform>();
- leftColumn = GameObject.Find("leftColumn").transform.GetComponentsInChildren<Transform>();
- playerCamera = Camera.main.gameObject.GetComponent<PlayerCamera>();
- for (int i = 0; i < rightColumn.Length; i++)
- {
- if (rightColumn[i].transform.parent == GameObject.Find("rightColumn").transform)
- {
- rightList.Add(rightColumn[i]);
- }
- }
- for (int i = 0; i < leftColumn.Length; i++)
- {
- if (leftColumn[i].transform.parent == GameObject.Find("leftColumn").transform)
- {
- leftList.Add(leftColumn[i]);
- }
- }
- LoadSprites();
- canvas = GameObject.Find("PauseMenu");
- canvas.SetActive(false);
- }
- public void Activate()
- {
- canvas.SetActive(true);
- resumeGame = false;
- }
- public void Deactivate()
- {
- canvas.SetActive(false);
- }
- public bool UpdatePauseMenu()
- {
- //Select what you want to change
- switch (column)
- {
- case SelectedColumn.left:
- Column(leftList);
- if (Input.GetAxisRaw("Horizontal") == 1)
- {
- listIndex = rightList.Count - 1;
- for (int i = 0; i < leftList.Count; i++)
- {
- leftList[i].gameObject.GetComponent<Image>().color = Color.white;
- }
- rightList[listIndex].gameObject.GetComponent<Image>().color = Color.red;
- column = SelectedColumn.right;
- }
- break;
- case SelectedColumn.right:
- if (Input.GetAxisRaw("Horizontal") == -1)
- {
- listIndex = leftList.Count - 1;
- for (int i = 0; i < rightList.Count; i++)
- {
- rightList[i].gameObject.GetComponent<Image>().color = Color.white;
- }
- leftList[listIndex].gameObject.GetComponent<Image>().color = Color.red;
- column = SelectedColumn.left;
- }
- Column(rightList);
- break;
- }
- if (Input.GetKeyDown(KeyCode.Joystick1Button7) || resumeGame)
- return false;
- else
- return true;
- }
- void Column(List<Transform> _tList)
- {
- maxIndex = _tList.Count - 1;
- if (Input.GetAxisRaw("Vertical") < 0)
- {
- if (delay)
- {
- _tList[listIndex].gameObject.GetComponent<Image>().color = Color.white;
- listIndex++;
- if (listIndex > maxIndex)
- {
- listIndex = maxIndex;
- }
- _tList[listIndex].gameObject.GetComponent<Image>().color = Color.red;
- delay = false;
- }
- else
- {
- counter += Time.deltaTime;
- }
- if (counter > 0.1f)
- {
- delay = true;
- counter = 0f;
- }
- }
- else if (Input.GetAxisRaw("Vertical") > 0)
- {
- if (delay)
- {
- _tList[listIndex].gameObject.GetComponent<Image>().color = Color.white;
- listIndex--;
- if (listIndex < minIndex)
- {
- listIndex = minIndex;
- }
- _tList[listIndex].gameObject.GetComponent<Image>().color = Color.red;
- delay = false;
- }
- else
- {
- counter += Time.deltaTime;
- }
- if (counter > 0.1f)
- {
- delay = true;
- counter = 0f;
- }
- }
- if (Input.GetKeyDown(KeyCode.Joystick1Button0))
- {
- if (_tList[listIndex].name == "vInverted")
- {
- isInvertedV = !isInvertedV;
- if (isInvertedV)
- _tList[listIndex].gameObject.GetComponent<Image>().sprite = boxWCross;
- else
- _tList[listIndex].gameObject.GetComponent<Image>().sprite = boxWOCross;
- }
- else if(_tList[listIndex].name == "hInverted")
- {
- isInvertedH = !isInvertedH;
- if (isInvertedH)
- _tList[listIndex].gameObject.GetComponent<Image>().sprite = boxWCross;
- else
- _tList[listIndex].gameObject.GetComponent<Image>().sprite = boxWOCross;
- }
- if (_tList[listIndex].name == "resume game")
- resumeGame = true;
- if (_tList[listIndex].name == "restart game")
- SceneManager.LoadScene("Scene_main");
- SetSettings();
- }
- }
- void SetSettings()
- {
- playerCamera.SetInverted(isInvertedH, isInvertedV);
- }
- void LoadSprites()
- {
- boxWCross = Resources.Load<Sprite>("Menu/Box_W_Cross");
- boxWOCross = Resources.Load<Sprite>("Menu/Box_WO_Cross");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment