・意図する動作
バックボタンを押したときに・・・
 ポップアップがあれば、それを消す
 なければアプリを終了

・実際の動作
バックボタンを押すと、ポップアップの有無に関わらず、アプリ終了

テストの為、ボタンクリックでの処理も行いました(ボタンを押したときに同様の処理をする)
このボタン動作の場合には意図通りに動きます。
ですが、バックボタンの処理を 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();
            }
        }
    }
}