Очень давно была необходимость отображать координаты курсора в редакторе сцены. Unity, на сколько я понимаю, до сих пор этого не умеет. Написал давно. Выглядит просто. Сегодня в очередной раз пригодилось, так как нужно было половить пиксели на сцене в режиме паузы.

public class CursorSceneCoordinates : EditorWindow
{
    private Vector2 _scenePosition;

    [MenuItem("Cursor Scene Coordinates")]
    static void Init()
    { 
        CursorSceneCoordinates window = GetWindow<CursorSceneCoordinates>();
        window.Show();
    }

    private void OnEnable() { SceneView.duringSceneGui += SceneViewDuring; } 

    private void OnDisable() { SceneView.duringSceneGui -= SceneViewDuring; }

    private void SceneViewDuring(SceneView scene)
    {
        var e = Event.current;
        if (e.type == EventType.KeyDown && e.keyCode == KeyCode.Space)
        {
            float pixelsPerPoint = EditorGUIUtility.pixelsPerPoint;
            Vector2 mouse = e.mousePosition;
            mouse.x *= pixelsPerPoint;
            mouse.y = scene.camera.pixelHeight - mouse.y * pixelsPerPoint;
            _scenePosition = scene.camera.ScreenToWorldPoint(mouse);

            Repaint();
        }
    }

    void OnGUI()
    {
        EditorGUILayout.LabelField("Scene: ", _scenePosition.ToString());
    } 
}

После открытия окна, перемещая курсор по редактору сцены и нажимая на пробел, в окошке будет выводится координаты мира.

Из этого простого решение можно сделать интересный инструмент. Например, пускать луч и отображать список объектов, слоев и другую информацию для отладки.

Иногда бухчу про #gamedev в Твиттере https://twitter.com/delaigrodela

Комментарии (4)


  1. cl0ne
    14.02.2022 15:52
    +3

    ИМХО, это на статью не тянет, уровень https://learn.unity.com/project/beginner-gameplay-scripting.


    1. oblakooblako
      15.02.2022 10:14
      +1

      Вы слишком злы, в текущий момент это почти middle уровень на юнити.(Сарказм)


      1. cl0ne
        15.02.2022 11:07

        Обещаю непременно исправиться :)


  1. p_gp
    15.02.2022 10:19

    твой друг не похож на Роя