EditorUtility.DisplayDialogComplex

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

Parameters

title对话框名称。
message对话框的用途。
ok所选的对话框功能。
cancel关闭对话框,不执行任何操作。
alt选择备选的对话框用途。

Returns

int 所选按钮的 ID。

Description

显示含有三个按钮的模态对话框。

用于在编辑器中显示消息框。

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

The ok button is the default option, and can also be activated by pressing Enter.

The cancel button is considered the "cancel" button and should usually not perform any action. On a PC, this can also be activated by pressing Escape or by clicking the dialog window close button. On a Mac, this can also be activated by pressing Escape, provided the button is called "Cancel".

The alt button allows you to provide the user with an alternative choice in addition to the ok and cancel buttons. This button does not have a fixed keyboard shortcut.

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

另请参阅:DisplayDialog


macOS display dialog buttons for the example below.



PC display dialog buttons for the example below.

以下脚本引用示例将创建一个复杂的显示对话框。所选按钮 将使系统调用 Unity EditorApplication 静态函数。

using UnityEngine;
using UnityEditor;

public class DisplayDlgComplexExample : EditorWindow { // Lets you save or not before quitting, or cancel.

[MenuItem("Example/Quit")] static void Init() { int option = EditorUtility.DisplayDialogComplex("Unsaved Changes", "Do you want to save the changes you made before quitting?", "Save", "Cancel", "Don't Save");

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

// Cancel. case 1: break;

// Don't Save. case 2: EditorApplication.Exit(0); break;

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