设置暂停ui

Posted 礼桀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设置暂停ui相关的知识,希望对你有一定的参考价值。

新建两个sprite renderer附上开始和暂停的按键

然后挂上脚本

using UnityEngine;
using System.Collections;

public class GamePause : MonoBehaviour {

    
    void OnMouseUpAsButton()
    {
        //用GameManager里的TransformGameState方法去调用按钮功能
        GameManager._instance.TransformGameState();
    }
}

在gamemanager脚本里调用

public enum GameState//枚举两个游戏状态
{
    Running,
    Pause
}
public class GameManager : MonoBehaviour
{
    public GameState gameState=GameState.Running;//声明一个共有变量存储游戏状态,默认为运行
    public GameObject gamePuase;
    public GameObject gameContinue;

 void Start()
    {
        gameContinue.SetActive(false);
        gamePuase.SetActive(true);
    }

 public void TransformGameState()
    {
        if (gameState==GameState.Running)
        {PuaseGame();
        gameContinue.SetActive(true);
        gamePuase.SetActive(false);
        }
        else if (gameState==GameState.Pause)
        {
            ContinueGame();
            gameContinue.SetActive(false);
            gamePuase.SetActive(true);
        }
    }
    public void PuaseGame()
    {
        
        Time.timeScale = 0;//将时间暂停
        gameState=GameState.Pause;
    }

    public void ContinueGame()
    {
       
        Time.timeScale = 1;//开始时间
        gameState=GameState.Running;
    }
}

这样就完成按键切换与控制时间,特别需要注意在暂停的时候不让角色移动需要在主角移动的方法内加上

 if (isMouseDown&&GameManager._instance.gameState==GameState.Running)

 

以上是关于设置暂停ui的主要内容,如果未能解决你的问题,请参考以下文章

为啥Android不会暂停视图完全被软键盘挡住的片段?

使用绑定从片段访问父活动的 UI 元素

将新片段添加到后台堆栈是不是会暂停当前片段?

什么是生命周期感知方式来实现重复的AsyncTask?

eclipse 断点调试

Mediaplayer在切换片段时没有暂停