Version: 2023.2

EditorGUI.EndChangeCheck

切换到手册
public static bool EndChangeCheck ();

返回

bool 如果在调用 EditorGUI.BeginChangeCheck 后 GUI 状态发生更改,则返回 true,否则返回 false。

描述

结束代码块并检查是否有任何 GUI 更改。

将它与 EditorGUI.BeginChangeCheck 结合使用来创建一个代码块,检查是否只有代码块中包含的控件的 GUI 状态发生了更改。
也就是说,此方法允许将检查限制为一组特定的控件,这一点不同于对于 GUI 状态的“任何”更改都返回 true 的 GUI.changed

using UnityEditor;

public class ExampleWindow : EditorWindow { float sliderValue = 0; string labelText = "-";

[MenuItem("Window/Example Window")] static void Init() { var example = (ExampleWindow)EditorWindow.GetWindow(typeof(ExampleWindow)); example.Show(); }

void OnGUI() { EditorGUILayout.LabelField("New value", labelText);

// Start a code block to check for GUI changes EditorGUI.BeginChangeCheck();

sliderValue = EditorGUILayout.Slider(sliderValue, 0, 1);

// End the code block and update the label if a change occurred if (EditorGUI.EndChangeCheck()) { labelText = sliderValue.ToString(); } } }