はじめに
MRTKで「Yes」「No」のような2択から選べるダイアログを表示して、結果によって処理を変えるということをやりたかったので調査しました。
環境
Unity 2020.3.27f1
MRTK 2.7.2
実装方法
ダイアログの使い方は以下のページに記載があります。
今回は以下のようにスクリプトを作ります。
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を設定すれば完了です。
以下のようにエディタ上で実行するとダイアログが表示されます。