0

我想知道当我点击它时如何使用鼠标指针从同一个按钮暂停和取消暂停菜单。

可以说我有这个。C#

void Update () {
    if (Button_Pause.OnPointerClick()) {
        if(!active){
            PauseGame();
        }
        else{
            ResumeGame();
        }
        active = !active;
    }
}

public void PauseGame()
{
    Button_Pause = Button_Pause.GetComponent<Button> ();
    Canvas_PauseMenu.enabled = true;
    Button_Exit.enabled = true;
    Button_Pause.enabled = true;
}

public void ResumeGame()
{
    Canvas_PauseMenu.enabled = false;
    Button_Exit.enabled = false;
    Button_Pause.enabled = false;
}

在第一行,我称之为OnPointerClick我只是猜测,因为我不知道该怎么做。我搜索过的内容,使用 click 来显示它具有 TimeScale 或类似的东西。

¿ 任何人都可以帮助 moi 吗?请。

4

2 回答 2

0

为您的按钮添加一个侦听器,并在您的暂停脚本中将时间刻度设置为零以暂停游戏

[SerializeField] private Button MyButton = null; // assign in the editor

void Start() { MyButton.onClick.AddListener(() => { pause();});
}

void pause(){
        if (Time.timeScale == 1)
         {
             Time.timeScale = 0;
         }
         else
         {
             Time.timeScale = 1;
         }

 }
于 2015-06-06T08:01:55.877 回答
0

我设法解决了这个问题。它可能效率不高,但它可以满足我的需求。

我在同一个地方创建了 2 个按钮。这些按钮用不同的精灵表示(暂停和播放)。“暂停”从一开始就可见。当我点击它时,弹出菜单,“暂停”停止激活,“播放”精灵按钮也激活并弹出。当我点击它时,我取消暂停并返回到屏幕中可见的“暂停”精灵。

void Start () {
    Canvas_PauseMenu = Canvas_PauseMenu.GetComponent<Canvas> ();
    Button_Pause = Button_Pause.GetComponent<Button> ();
    Button_Resume = Button_Resume.GetComponent<Button> ();
    Canvas_PauseMenu.enabled = false;
    Button_Resume.enabled = false;
    Button_Resume.gameObject.SetActive (false);
}

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

    if(!active){
        PauseGame();
    }
    else{
        ResumeGame();
    }

}

public void BackToMainMenu()
{
    Application.LoadLevel (0);
}

public void PauseGame()
{
    Canvas_PauseMenu.enabled = true;
    Button_Exit.enabled = true;
    Button_Pause.enabled = false;
    Button_Pause.gameObject.SetActive (false);
    Button_Resume.enabled = true;
    Button_Resume.gameObject.SetActive (true);
    active = true;
    Time.timeScale = 0;
}

public void ResumeGame()
{
    Canvas_PauseMenu.enabled = false;
    Button_Exit.enabled = false;
    Button_Pause.enabled = true;
    Button_Pause.gameObject.SetActive (true);
    Button_Resume.enabled = false;
    Button_Resume.gameObject.SetActive (false);
    active = false;
    Time.timeScale = 1;
}
于 2015-06-06T17:20:51.330 回答