How to resume game after pressing back in menu











up vote
2
down vote

favorite












Hey I am trying to make a pause menu in my game. When escape is pressed pause game go to menu, but now I want to be able to press back in menu and resume my game. So far I can only pause game and cant press back. Also if i press Play in menu it starts at my tutorial scene and not the current scene. Is there a smart way to do this? Without resetting my game.



`using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;

public class MenuScript : MonoBehaviour
{

// Use this for initialization
void Start()
{

}

// Update is called once per frame
void Update()
{
if (Input.GetKey(KeyCode.Escape))
{
if (Time.timeScale == 0)
{
Time.timeScale = 1;
}
else
{
Time.timeScale = 0;
}
SceneManager.LoadScene("Menu");




}

}
}`









share|improve this question


























    up vote
    2
    down vote

    favorite












    Hey I am trying to make a pause menu in my game. When escape is pressed pause game go to menu, but now I want to be able to press back in menu and resume my game. So far I can only pause game and cant press back. Also if i press Play in menu it starts at my tutorial scene and not the current scene. Is there a smart way to do this? Without resetting my game.



    `using UnityEngine;
    using UnityEngine.SceneManagement;
    using UnityEngine.UI;

    public class MenuScript : MonoBehaviour
    {

    // Use this for initialization
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
    if (Input.GetKey(KeyCode.Escape))
    {
    if (Time.timeScale == 0)
    {
    Time.timeScale = 1;
    }
    else
    {
    Time.timeScale = 0;
    }
    SceneManager.LoadScene("Menu");




    }

    }
    }`









    share|improve this question
























      up vote
      2
      down vote

      favorite









      up vote
      2
      down vote

      favorite











      Hey I am trying to make a pause menu in my game. When escape is pressed pause game go to menu, but now I want to be able to press back in menu and resume my game. So far I can only pause game and cant press back. Also if i press Play in menu it starts at my tutorial scene and not the current scene. Is there a smart way to do this? Without resetting my game.



      `using UnityEngine;
      using UnityEngine.SceneManagement;
      using UnityEngine.UI;

      public class MenuScript : MonoBehaviour
      {

      // Use this for initialization
      void Start()
      {

      }

      // Update is called once per frame
      void Update()
      {
      if (Input.GetKey(KeyCode.Escape))
      {
      if (Time.timeScale == 0)
      {
      Time.timeScale = 1;
      }
      else
      {
      Time.timeScale = 0;
      }
      SceneManager.LoadScene("Menu");




      }

      }
      }`









      share|improve this question













      Hey I am trying to make a pause menu in my game. When escape is pressed pause game go to menu, but now I want to be able to press back in menu and resume my game. So far I can only pause game and cant press back. Also if i press Play in menu it starts at my tutorial scene and not the current scene. Is there a smart way to do this? Without resetting my game.



      `using UnityEngine;
      using UnityEngine.SceneManagement;
      using UnityEngine.UI;

      public class MenuScript : MonoBehaviour
      {

      // Use this for initialization
      void Start()
      {

      }

      // Update is called once per frame
      void Update()
      {
      if (Input.GetKey(KeyCode.Escape))
      {
      if (Time.timeScale == 0)
      {
      Time.timeScale = 1;
      }
      else
      {
      Time.timeScale = 0;
      }
      SceneManager.LoadScene("Menu");




      }

      }
      }`






      c# unity3d






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 22 at 14:09









      noobprogrammer1337

      326




      326
























          1 Answer
          1






          active

          oldest

          votes

















          up vote
          1
          down vote



          accepted










          I get that this isn't straightforward problem since you seem new to Unity.



          You got the idea correctly, changing the time scale will freeze all agents on the scene. HOWEVER, if you load a new scene you'll need to reload the game scene - losing any data you had (and that is not what you want). My advice is creating an overlay element (UI) on the game scene and just show/hide it. There are multiple tutorials online use this as an starting point. Let me know if you require more help.



          code sample



          // Update is called once per frame
          void Update()
          {
          if (Input.GetKey(KeyCode.Escape))
          {
          if (Time.timeScale == 0)
          {
          Time.timeScale = 1;
          pauseMenu.gameObject.setActive(true);
          }
          else
          {
          Time.timeScale = 0;
          pauseMenu.gameObject.setActive(false);
          }
          }
          }


          You will need a reference to the pauseMenu game object attached on this script using the Unity editor.






          share|improve this answer























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53432787%2fhow-to-resume-game-after-pressing-back-in-menu%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes








            up vote
            1
            down vote



            accepted










            I get that this isn't straightforward problem since you seem new to Unity.



            You got the idea correctly, changing the time scale will freeze all agents on the scene. HOWEVER, if you load a new scene you'll need to reload the game scene - losing any data you had (and that is not what you want). My advice is creating an overlay element (UI) on the game scene and just show/hide it. There are multiple tutorials online use this as an starting point. Let me know if you require more help.



            code sample



            // Update is called once per frame
            void Update()
            {
            if (Input.GetKey(KeyCode.Escape))
            {
            if (Time.timeScale == 0)
            {
            Time.timeScale = 1;
            pauseMenu.gameObject.setActive(true);
            }
            else
            {
            Time.timeScale = 0;
            pauseMenu.gameObject.setActive(false);
            }
            }
            }


            You will need a reference to the pauseMenu game object attached on this script using the Unity editor.






            share|improve this answer



























              up vote
              1
              down vote



              accepted










              I get that this isn't straightforward problem since you seem new to Unity.



              You got the idea correctly, changing the time scale will freeze all agents on the scene. HOWEVER, if you load a new scene you'll need to reload the game scene - losing any data you had (and that is not what you want). My advice is creating an overlay element (UI) on the game scene and just show/hide it. There are multiple tutorials online use this as an starting point. Let me know if you require more help.



              code sample



              // Update is called once per frame
              void Update()
              {
              if (Input.GetKey(KeyCode.Escape))
              {
              if (Time.timeScale == 0)
              {
              Time.timeScale = 1;
              pauseMenu.gameObject.setActive(true);
              }
              else
              {
              Time.timeScale = 0;
              pauseMenu.gameObject.setActive(false);
              }
              }
              }


              You will need a reference to the pauseMenu game object attached on this script using the Unity editor.






              share|improve this answer

























                up vote
                1
                down vote



                accepted







                up vote
                1
                down vote



                accepted






                I get that this isn't straightforward problem since you seem new to Unity.



                You got the idea correctly, changing the time scale will freeze all agents on the scene. HOWEVER, if you load a new scene you'll need to reload the game scene - losing any data you had (and that is not what you want). My advice is creating an overlay element (UI) on the game scene and just show/hide it. There are multiple tutorials online use this as an starting point. Let me know if you require more help.



                code sample



                // Update is called once per frame
                void Update()
                {
                if (Input.GetKey(KeyCode.Escape))
                {
                if (Time.timeScale == 0)
                {
                Time.timeScale = 1;
                pauseMenu.gameObject.setActive(true);
                }
                else
                {
                Time.timeScale = 0;
                pauseMenu.gameObject.setActive(false);
                }
                }
                }


                You will need a reference to the pauseMenu game object attached on this script using the Unity editor.






                share|improve this answer














                I get that this isn't straightforward problem since you seem new to Unity.



                You got the idea correctly, changing the time scale will freeze all agents on the scene. HOWEVER, if you load a new scene you'll need to reload the game scene - losing any data you had (and that is not what you want). My advice is creating an overlay element (UI) on the game scene and just show/hide it. There are multiple tutorials online use this as an starting point. Let me know if you require more help.



                code sample



                // Update is called once per frame
                void Update()
                {
                if (Input.GetKey(KeyCode.Escape))
                {
                if (Time.timeScale == 0)
                {
                Time.timeScale = 1;
                pauseMenu.gameObject.setActive(true);
                }
                else
                {
                Time.timeScale = 0;
                pauseMenu.gameObject.setActive(false);
                }
                }
                }


                You will need a reference to the pauseMenu game object attached on this script using the Unity editor.







                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited Nov 22 at 14:24

























                answered Nov 22 at 14:18









                Cabrra

                5551823




                5551823






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.





                    Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                    Please pay close attention to the following guidance:


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53432787%2fhow-to-resume-game-after-pressing-back-in-menu%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    What visual should I use to simply compare current year value vs last year in Power BI desktop

                    How to ignore python UserWarning in pytest?

                    Alexandru Averescu