EditorUtility.DisplayDialogComplex

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

Parameters

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

Returns

int 所选按钮的 ID。

Description

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

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

DisplayDialogComplex 类似于 DisplayDialog。此 DisplayDialogComplex 成员 显示一个含有三个按钮的对话框。这些按钮表示 altaltDisplayDialogComplexDisplayDialogComplex 返回与 altaltcancel 按钮对应的整数 0、1 或 2。

第一个按钮将是默认按钮,只需按 Enter 键即可启用该按钮。 第三个按钮将被视为 "cancel" 按钮。在 PC 上,您也可以通过 按 Escape 键或单击对话框窗口关闭按钮启用该按钮。

为遵从常规平台 UI 准则,按钮的实际显示顺序 将视平台而定。在 Windows 上,相应顺序为 /ok/、/alt/、cancel;在 macOS 上,相应顺序为 /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, 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; } } }