I made an resume button, but I don't know how to code it to close my pause menu, any tips?

This is my script for the pause.
(I use C#)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Pause : MonoBehaviour
{

    public GameObject PauseMenu;
    public bool PauseMenuActive;

    void Start()
    {
        PauseMenu.SetActive(false);
    }

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Escape))
            PauseMenuActive = !PauseMenuActive;

        if (PauseMenuActive)
        {
            PauseMenuOpen();
        }

        if(!PauseMenuActive)
        {
            PauseMenuClose();
        }
    }


    void PauseMenuOpen()
    {
        PauseMenu.SetActive(true);
        
        
    }

    public void PauseMenuClose()
    {
        PauseMenuActive  = false;
        PauseMenu.SetActive(false);
       
    }


}

Hi there,

The way you have coded this you are constantly calling either ‘PauseMenuOpen’ or ‘PauseMenuClose’ in every frame. This is a bit unnecessary Let’s try and refactor the code a bit and perhaps we will stumble on a solution to the problem.

public class Pause : MonoBehaviour
{
    [SerializeField] GameObject PauseMenu;

    /// <summary>
    /// returns the state of the Pause menu
    /// </summary>
    public bool IsPauseMenuActive
    {
        get { return PauseMenu.activeSelf; }
    }

    void Start()
    {
        PauseMenu.SetActive(false);
    }

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Escape))
            HandlePause();

    }

    private void HandlePause()
    {
        if (!IsPauseMenuActive)
        { 
            PauseMenuOpen();
            return;
        }

        PauseMenuClose();
    }

    void PauseMenuOpen()
    {
        PauseMenu.SetActive(true);
    }

    public void PauseMenuClose()
    {
        PauseMenu.SetActive(false);
    }
}

I tried this code and it seemed to open and close the menu just fine, let me know if it helps.

Following this you can simply call the PauseMenuClose() function from the resume button.

You could just use a UI Button and add an event to disable your pause menu parent gameobject.


Like this:
160270-unity-using-ui-button-to-disable-menu.jpg