示例#1
0
    /// <summary>
    /// ダイアログを表示する
    /// </summary>
    public IEnumerator DialogShow(DialogSelector.DialogType type, DialogData data = null)
    {
        DialogBase dialog = dialogSelector.GetDialog(type);

        Debug.Log("ダイアログ = " + dialog);
        if (dialog != null)
        {
            //ダイアログがひとつも表示されていなければ背景を表示する
            if (showDialogList.Count == 0)
            {
                backgroundObject.SetActive(true);
            }

            //対象ダイアログを生成
            DialogBase targetDialog = DialogBase.Instantiate <DialogBase>(dialog);
            targetDialog.transform.SetParent(contentArea.transform, false);
            showDialogList.Add(targetDialog);
            //ダイアログ表示開始
            yield return(targetDialog.Show(data));

            //表示が終わったらダイアログを破棄
            showDialogList.Remove(targetDialog);
            Destroy(targetDialog.gameObject);
            if (showDialogList.Count == 0)
            {
                backgroundObject.SetActive(false);
            }
        }
    }