Search Issue Tracker

By Design



Found in







Issue ID




WorldToScreenPoint transforms offsetted screen position when display is scaled above 100% on Windows 10



How to reproduce:
1. Open the attached '' project
2. Open 'SampleScene' Scene
3. Select 'GameObject' GameObject in the Hierarchy and observe its position in the Scene View
4. Open Display Settings and change Scale and layout section's scaling to 150% on Windows
5. Back to the Editor and select 'GameObject' GameObject in the Hierarchy

Expected result: GameObject's position is drawn at the object origin
Actual result: GameObject's position is offsetted

Reproducible with: 2018.2.0a6, 2018.4.18f1, 2019.3.4f1, 2020.1.a25, 2020.2.0a1
Not reproducible: 2018.2.0a5
Could not test with: 2017.4.37f1 because Presets namespace is not introduced

Notes: Video and project of reproduction attached in Edit

  1. Resolution Note (2020.1.X):

    The code is working as expected.

    According to WorldToScreenPoint defines ScreenSpace in pixels.

    Most modern displays are resolution independent. Their logical area is not the same as their pixel resolution. In order to get the correct resolution for placement on the screen, you have to transform the coordinates from pixels to screen coordinates by dividing by EditorGUIUtility.pixelsPerPoint (

    In addition, the Y axis is inverted for GUI space, with (0,0) being the top left corner instead of the bottom left corner (See for an example). You will have to convert camera hight from pixels to points using EditorGUIUtility.pixelsPerPoint and then subtract your offset.

    Note that EditorGUIUtility.pixelsPerPoint is not constant. It is the most up to date value possible and my even be different on different connected displays.

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.