docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Using Input in the Editor

    Unlike Unity's old Input Manager, you can use the new Input System from within EditorWindow code as well. For example, you can gain access to pen pressure information like this:

    class MyEditorWindow : EditorWindow
    {
        public void OnGUI()
        {
            var pen = Pen.current;
            if (pen != null)
            {
                var position = pen.position.ReadValue();
                var pressure = pen.pressure.ReadValue();
    
                //...
            }
        }
    }
    

    This encompasses all code called from OnGUI() methods, which means that you can also use the Input System in property drawers, Inspectors, and other similar places.

    Note: Unity doesn't support Actions in Edit mode.

    Coordinate System

    The coordinate system differs between EditorWindow code and UnityEngine.Screen. EditorWindow code has its origin in the upper-left corner, with Y down. UnityEngine.Screen has it in the bottom-left corner, with Y up.

    The Input System compensates for that by automatically converting coordinates depending on whether you call it from your application or from Editor code. In other words, calling Mouse.current.position.ReadValue() from inside EditorWindow code returns mouse coordinates in Editor UI coordinates (Y down), and reading the position elsewhere returns it in application screen coordinates (Y up).

    Internally, an editor-specific Processor called AutoWindowSpace handles this translation.

    In This Article
    Back to top
    Copyright © 2025 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)