unityでのAndroidバックボタンの挙動
・意図する動作
バックボタンを押したときに・・・
ポップアップがあれば、それを消す
なければアプリを終了
・実際の動作
バックボタンを押すと、ポップアップの有無に関わらず、アプリ終了
テストの為、ボタンクリックでの処理も行いました(ボタンを押したときに同様の処理をする)
このボタン動作の場合には意図通りに動きます。
ですが、バックボタンの処理を Update() 内で書いたときには意図通りに動きません。
予想:バックボタンは1クリックしかしていないのに、クリックを何回もしているような処理になっている気がする。Update() のせい?
ドコがおかしいのでしょうか。
以下ソース
テスト用ボタンクリック
public void Onclick () {
if(MyCanvas.IsActive ("ScrollController")){//アクティブなら
Debug.Log("ScrollController");
MyCanvas.SetActive ("ScrollController", false);//非アクティブにする
}else if(MyCanvas.IsActive ("ScrollController2")){//アクティブなら
Debug.Log("ScrollController2");
MyCanvas.SetActive ("ScrollController2", false);//非アクティブに
}else if(MyCanvas.IsActive ("AboutPanel")){//アクティブなら
Debug.Log("AboutPanel");
MyCanvas.SetActive ("AboutPanel", false);//非アクティブに
}else{
Debug.Log("Quit");
Application.Quit();
}
}
実際のバックボタン用コード
void Update () {
if (Application.platform == RuntimePlatform.Android) {
if (Input.GetKey(KeyCode.Escape)) {
if(MyCanvas.IsActive ("ScrollController")){//アクティブなら
Debug.Log("ScrollController");
MyCanvas.SetActive ("ScrollController", false);//非アクティブに
}else if(MyCanvas.IsActive ("ScrollController2")){//アクティブなら
Debug.Log("ScrollController2");
MyCanvas.SetActive ("ScrollController2", false);//非アクティブに
}else if(MyCanvas.IsActive ("AboutPanel")){//アクティブなら
Debug.Log("AboutPanel");
MyCanvas.SetActive ("AboutPanel", false);//非アクティブに
}else {
Debug.Log("Quit");
Application.Quit();
}
}
}
}