public bool popDialog(GameDialogBase dialog)
    {
        if (dialog == null)
            return false;

        int index = findDialogIndex (dialog);
        if (index < 0)
        {
            return false;
        }
        else if (index == _dialogs.Count - 1)
        {
            popTop();
        }
        else
        {
            _dialogs.RemoveAt(index);
            dialog.onPop();
            resetOrder();
        }
        return true;
    }
 public bool isDialogShow(GameDialogBase dialog)
 {
     return findDialogIndex(dialog) >= 0;
 }
 public int findDialogIndex(GameDialogBase dialog)
 {
     return _dialogs.IndexOf(dialog);
 }