Version: 2017.2

EditorUtility.DisplayCancelableProgressBar

切换到手册
public static bool DisplayCancelableProgressBar (string title, string info, float progress);

描述

显示或更新含有 Cancel 按钮的进度条。

窗口标题将设置为 /title/,信息将设置为 /info/。 进度应设置为 0.0 和 1.0 之间的一个值,0 表示一点儿也没有完成,1.0 表示完成 100%。

如果您在编辑器脚本或向导中执行任何冗长的运算 ,并希望通知用户相应进度,这非常有用。

返回此函数的参数,以指示用户是否已按下 Cancel 按钮。 之后,您负责停止正在执行的任务。

另请参阅:DisplayProgressBarClearProgressBar 函数。

\ 编辑器中可取消的进度条。

using UnityEngine;
using UnityEditor;

public class CancelableProgressBarExample : EditorWindow { static int secs = 0; static double startVal = 0; static double progress = 0;

[MenuItem("Example/Cancelable Progress Bar")] static void Init() { // Get existing open window or if none, make a new one: CancelableProgressBarExample window = (CancelableProgressBarExample)EditorWindow.GetWindow(typeof(CancelableProgressBarExample)); window.Show(); }

void OnGUI() { if (secs > 0) { if (GUILayout.Button("Display bar")) startVal = EditorApplication.timeSinceStartup;

progress = EditorApplication.timeSinceStartup - startVal;

if (progress < secs) { if (EditorUtility.DisplayCancelableProgressBar( "Simple Progress Bar", "Shows a progress bar for the given seconds", (float)(progress / secs))) { Debug.Log("Progress bar canceled by the user"); startVal = 0; } } else EditorUtility.ClearProgressBar(); } else secs = EditorGUILayout.IntField("Time to wait:", secs); }

void OnInspectorUpdate() { Repaint(); } }
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961