Давно возникла необходимость отображать координаты курсора в редакторе сцен.
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://x.com/delaigrodela Теги: #Разработка игр #gamedev #gamedevelopment #C++ #unity #разработка игр #unity3d #учебник по Unity #уроки Unity #indiedev #indie gamedev #пример кода
Вместе с данным постом часто просматривают:
-
Греческий Язык
19 Oct, 24 -
Подробнее О Публикации Компонентов
19 Oct, 24 -
Скачать Мастер 5.3.1.1075
19 Oct, 24 -
Мой Первый Скрипт Для Решения Капчи
19 Oct, 24