版本: Unity 6 (6000.0)
语言英语
  • C#

EditorGUI.EndChangeCheck

建议更改

成功!

感谢您帮助我们改进 Unity 文档质量。虽然我们无法接受所有提交,但我们确实阅读了来自用户的每个建议更改,并将根据需要进行更新。

关闭

提交失败

由于某种原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们改进 Unity 文档质量。

关闭

取消

声明

public static bool EndChangeCheck();

返回值

bool 如果 GUI 状态自调用 EditorGUI.BeginChangeCheck 以来已更改,则返回 true,否则返回 false。

描述

结束代码块并检查 GUI 更改。

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

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 // Note: This indicates user interaction with the slider but does not guarantee that a SerializedProperty has changed. // To have the updated value, call serializedObject.ApplyModifiedProperties(). if (EditorGUI.EndChangeCheck()) { labelText = sliderValue.ToString(); } } }