takataka430’s blog

.NET系を中心に勉強したことのまとめを書きます

MRTKのダイアログを使う

はじめに

MRTKで「Yes」「No」のような2択から選べるダイアログを表示して、結果によって処理を変えるということをやりたかったので調査しました。

環境

Unity 2020.3.27f1
MRTK 2.7.2

実装方法

ダイアログの使い方は以下のページに記載があります。

docs.microsoft.com

今回は以下のようにスクリプトを作ります。

using Microsoft.MixedReality.Toolkit.UI;
using UnityEngine;

public class DialogStudy : MonoBehaviour
{
    [SerializeField]GameObject dialogPrefab;

    void Start()
    {
        //ダイアログの表示
        Dialog dialog = Dialog.Open(dialogPrefab, DialogButtonType.Yes | DialogButtonType.No, "Title", "Message", true);
        
        if(dialog != null)
        {
            dialog.OnClosed += (DialogResult result) => 
            { 
                //ダイアログのボタンを選択後、やりたい処理を書く
                //今回はログに選択したボタンを表示
                Debug.Log(result.Result.ToString()); 
            };
        }
    }
}

あとはこのスクリプトをオブジェクトにアタッチして、ダイアログのPrefabを設定すれば完了です。 f:id:takataka430:20220216095122p:plain

以下のようにエディタ上で実行するとダイアログが表示されます。 f:id:takataka430:20220216095151p:plain