# RegisterPositionChangedCallback(Action<GameWindow, PositionChangedEventArgs>)

> Registers a callback that is invoked when the window's position changes.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine.Windowing](/engine/6000.7/script-reference/unityengine/windowing.md)
* **Assembly:** UnityEngine.WindowingModule

```csharp
public void RegisterPositionChangedCallback(Action<GameWindow, PositionChangedEventArgs> callback)
```

### Parameters

**** (\[Action\<GameWindow, PositionChangedEventArgs>]\(https\://learn.microsoft.com/dotnet/api/system.action)): The callback to invoke when the position changes with [GameWindow](/engine/6000.7/script-reference/unityengine/windowing/gamewindow.md) and [PositionChangedEventArgs](/engine/6000.7/script-reference/unityengine/windowing/positionchangedeventargs.md) as parameters.

### Examples

```csharp
using UnityEngine;
using UnityEngine.Windowing;

public class WindowingTest : MonoBehaviour
{
    GameWindow mainWindow;

    private void Awake()
    {
        mainWindow = GameWindow.Main;
    }

    private void OnEnable()
    {
        // Register the callback
        mainWindow.RegisterPositionChangedCallback(WindowMovedCallback);
    }

    private void OnDisable()
    {
        // Unregister the callback
        mainWindow.UnregisterPositionChangedCallback(WindowMovedCallback);
    }

    private void WindowMovedCallback(GameWindow window, PositionChangedEventArgs args)
    {
        Debug.Log($"Main window moved to: {args.Position.x}, {args.Position.y}");
    }
}
```
