public static int DisplayDialogComplex (string title, string message, string ok, string cancel, string alt);


title ダイアログに表示するタイトル
message Purpose for the dialog.
ok Dialog function chosen.
alt Choose alternative dialog purpose.
cancel Close dialog with no operation.


int The id of the chosen button.


3 つボタンのモーダルダイアログを表示します


DisplayDialogComplex is similar to DisplayDialog. This DisplayDialogComplex member shows a dialog with three buttons. These buttons represent ok, alt and cancel. DisplayDialogComplex returns an integer 0, 1 or 2 corresponding to the ok, alt and cancel buttons.

The first button will be the default, and can also be activated by simply pressing Enter. The third button will be considered the "cancel" button. On a PC this can also be activated by pressing Escape or clicking the dialog window close button.

For compliance with normal platform UI guidelines the actual display order of the buttons is platform-dependent. On Windows, the order is ok, alt, cancel; on macOS, the order is alt, cancel, ok.

See Also: DisplayDialog.

macOS display dialog buttons for the example below.

PC display dialog buttons for the example below.

The script reference example below creates a complex display dialog. The chosen button causes a Unity EditorApplication static function to be called.

using UnityEngine;
using UnityEditor;

public class DisplayDlgComplexExample : EditorWindow { // Lets you save, save and quit or quit without saving

[MenuItem("Example/Enhanced Save")] static void Init() { int option = EditorUtility.DisplayDialogComplex("What do you want to do?", "Please choose one of the following options.", "Save Scene", "Save and Quit", "Quit without saving");

switch (option) { // Save Scene case 0: EditorApplication.SaveScene(EditorApplication.currentScene); break;

// Save and Quit. case 1: EditorApplication.SaveScene(EditorApplication.currentScene); EditorApplication.Exit(0); break;

// Quit Without saving. case 2: EditorApplication.Exit(0); break;

default: Debug.LogError("Unrecognized option."); break; } } }