# BeginChangeCheck()

> Starts a new code block to check for GUI changes.

## Definition

* **Type:** Method
* **Namespace:** [UnityEditor](/engine/6000.0/script-reference/unityeditor.md)
* **Assembly:** UnityEditor

```csharp
public static void BeginChangeCheck()
```

### Remarks

Use this in combination with [EditorGUI.EndChangeCheck](/engine/6000.0/script-reference/unityeditor/editorgui/endchangecheck.md) to create a code block that checks if the GUI state changed for just the controls contained in that block.

This method is different from [GUI.changed](/engine/6000.0/script-reference/unityengine/gui/changed.md), which returns true for *any* changes to the GUI state. BeginChangeCheck() limits the check to a specific set of controls.

### Examples

```csharp
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 occurs.
        // 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();
        }
    }
}
```
