Невозможно возобновить unity3D после паузы - PullRequest
0 голосов
/ 13 февраля 2020

Я довольно новичок в c#. В настоящее время я делаю паузу и возобновить экран. Кажется, что пауза работает просто отлично, но возобновляющая функциональность - нет.

Я использовал Debug.Log, чтобы сузить проблему до фрагмента кода ниже. Когда я нажимаю кнопку возобновления после паузы, Paused устанавливается на false, но больше ничего не происходит, это как если бы код никогда не достигал условия else.

Однако он работает, так как до того, как я нажимаю паузу, я получаю «резюме» с Debug.Log, но всякий раз, когда я нажимаю паузу, я никогда не получаю это.

public static bool Paused;
public void ClickPauseButton()
{
    Paused = true;
    Time.timeScale = 0;
}

public void ClickResumeButton()//works
{
    Paused = false;
    Time.timeScale = 1;
}

void Update()
{
    if(Paused == true)
    {
        showPaused();
        HideUI();
    }
    else //This is the problem... Not a single resume
    {
        ShowUI();
        hidePaused();
        Debug.Log("resume");
    }
}

1 Ответ

0 голосов
/ 13 февраля 2020

Вы можете изменить свой скрипт с помощью моего скрипта, который я дал ниже.

    using System.Collections.Generic;
    using UnityEngine;

    public class PausedMenu : MonoBehaviour
    {
        public static bool Paused = false;
        public GameObject pauseUI;

        // Update is called once per frame
        void Update()
        {
            if (Input.GetKeyDown(KeyCode.Escape))
            {
                if (Paused)
                {
                    ClickResumeButton();
                }
                else
                {
                    ClickPauseButton();
                }
            }
        }

        public void ClickResumeButton()
        {
            pauseUI.SetActive(false);
            Time.timeScale = 1f;
            Paused = false;
        }

        public void ClickPauseButton()
        {
            pauseUI.SetActive(true);
            Time.timeScale = 0f;
            Paused = true;
        }
   }

, используя его, вы можете легко управлять своим pauseUI.

Примечание : прикрепить ваш скрипт для родительского игрового объекта. Убедитесь, что ваш игровой объект находится в этой последовательности. PauseCanvas -> PauseUI -> ResumeButton. Вы должны передать этот скрипт PauseCanvas. И ваша кнопка паузы находится вне pauseUI.

Вы можете использовать эту последовательность, которую я дал ниже.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...