|
Unity安卓版本,响应手机系统返回键
具体需求如下:(以下【返回】代指手机系统的返回导航按钮)
在游戏的主菜单界面,点【返回】,弹出【退出整个游戏的对话框】。此时再点【返回】 ,【退出整个游戏的对话框】消失。点击对话框上的确定退出则退出游戏。
在游戏的其他菜单界面,点【返回】,关闭本菜单,返回上一级菜单。
在游戏的进行过程中,点【返回】,弹出暂停界面,再点【返回】
解决办法
我使用的是Unity2018.3.6f1版本,自带的Keycode.Escape就可以响应系统返回键了。代码如下:
using DG.Tweening;
using System;
using UnityEngine.UI;
public class CollectUIManager : MonoBehaviour {
public enum UIState
{
Main,
Pause
};//设置多种不同的返回状态
[HideInInspector] public UIState state = UIState.Main;
private void Update()
{
if (GameManager._instance.isWin || GameManager._instance.isOver)
{
pauseButton.gameObject.SetActive(false);
}
else
{
ListenESC();
}
}
void ListenESC()
{
if (Input.GetKeyUp(KeyCode.Escape))
{
switch (state)
{
case UIState.Main:
Esc_Main();
break;
case UIState.Pause:
Esc_Pause();
break;
}
}
}
void Esc_Main()
{
Pause();
state = UIState.Pause;
}
void Esc_Pause()
{
Resume();
state = UIState.Main;
}
}
|