How to make a game pause and show a pause screen?

So I would like my game to pause and show a canvas that I will put information about controls etc on,
I want it to show on the press of a button such as P
But how could I get the canvas to show? and have to press a button again to exit the screen and resume the game

you can make a reference to the Canvas you want to hide. something like:

private GameObject pausedCanvas;

void Start(){
//note that the canvas, or any object which you want to use FindWithTag with, needs to have a tag called PausedCanvas, which is added in the Inspector area of editor
myCanvas1 = GameObject.FindGameObjectWithTags("PausedCanvas");
pausedCanvas.SetActive(false);
}


void Update(){
if (Input.GetKeyDown(KeyCode.P)){
pausedCanvas.SetActive(true);
}

Okay bro you can you a Time.timeScale for that . Here’s how

// Update is called once per frame
	void Update () {

		//uses the p button to pause and unpause the game
		if(Input.GetKeyDown(KeyCode.P))
		{
			if(Time.timeScale == 1)
			{
				Time.timeScale = 0;
				showPaused();
			} else if (Time.timeScale == 0){
				Debug.Log ("high");
				Time.timeScale = 1;
				hidePaused();
			}
		}
	}

void HidePaused(){
canvas.gameObject.setActive(false);
}

void ShowPause(){
canvas.gameObject.setActive(true);
}

Simple as that :slight_smile:
Happy coding bro.