Version: Unity 6.6 Alpha (6000.6)
LanguageEnglish
  • C#

GameWindowExtensions.SetInputRegion

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

Declaration

public static AsyncOperation SetInputRegion(GameWindow window, Region region);

Parameters

Parameter Description
window The GameWindow instance this extension method is implicitly called on.
region A Region struct containing lists of rectangular areas to include and exclude from input.

Returns

AsyncOperation An AsyncOperation that can be used to track the completion of the input region update operation.

Description

Sets the input region for the specified window. This is an extension method for GameWindow.

This method allows you to define which areas of the window should receive input events and which areas should be excluded. This is useful for creating custom input handling behavior in EmbeddedLinux (Wayland) environments.

Notes:

  • This method is asynchronous and returns an AsyncOperation that you can use to track the completion of the operation.
  • The Region parameter contains two lists of rectangles: one for inclusion regions and another for exclusion regions. The system adds the inclusions first, then subtracts the exclusions in that order.
  • Calling this method replaces any previously set input regions for the specified GameWindow.
  • This method is available only on EmbeddedLinux platforms with Wayland support.
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Windowing;
using UnityEngine.Windowing.EmbeddedLinux;

public class WindowingInputRegionsExample : MonoBehaviour { void Start() { Region region = new Region() { // rectangles to include for input inclusions = new List<RectInt>() { new RectInt(0, 0, 300, 300), new RectInt(250, 250, 150, 150) }, // rectangles to exclude from input exclusions = new List<RectInt>() { new RectInt(100, 0, 200, 200), new RectInt(250, 250, 50, 50) } };

var op = GameWindow.Main.SetInputRegion(region);

op.completed += _ => { Debug.Log($"Input regions set for {GameWindow.Main.GetTitle()}"); }; } }