【发布时间】:2021-06-30 23:33:52
【问题描述】:
我有一张游戏结束的画布和一张带有暂停菜单的画布,主屏幕上有按钮。当我玩游戏时,我死了,我的画布上的游戏出现了,但是 pausemenu 画布上的按钮不会消失或禁用,可以按下并且 pausemenu 画布出现在游戏结束上。谢谢!
【问题讨论】:
我有一张游戏结束的画布和一张带有暂停菜单的画布,主屏幕上有按钮。当我玩游戏时,我死了,我的画布上的游戏出现了,但是 pausemenu 画布上的按钮不会消失或禁用,可以按下并且 pausemenu 画布出现在游戏结束上。谢谢!
【问题讨论】:
您所要做的就是在您的按钮上使用 .SetActive() 函数!当您在游戏结束屏幕上时,只有该画布中的元素应该处于活动状态。
首先,您将在脚本中将暂停按钮声明为公共游戏对象。然后在开始时,在游戏开始时调用暂停按钮,但是,如果 gameOver,则将其设置为 false。
public GameObject pauseButton;
void Start(){
pauseButton.SetActive(true);
}
void OnTriggerEnter2D(Collider2D other){
if(other.tag == "Enemy"){
pauseButton.SetActive(false);
gameOver();
}
}
【讨论】:
您需要为暂停、游戏中、菜单、死亡等游戏状态制作系统。然后在画布上为每个屏幕设置父游戏对象(此对象下每个屏幕的按钮和部分),然后启用/禁用此父游戏对象。
所以当你死了它会是这样的
void UpdateUI(){
if(status == status.dead)
canv_pause.SetActive(false);
canv_ingame.SetActive(false);
canv_menu.SetActive(false);
canv_dead.SetActive(true);
if(status == status.menu)
canv_pause.SetActive(false);
canv_ingame.SetActive(false);
canv_menu.SetActive(true);
canv_dead.SetActive(false);
//etc...
}
【讨论】: