Очень давно была необходимость отображать координаты курсора в редакторе сцены. 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
cl0ne
ИМХО, это на статью не тянет, уровень https://learn.unity.com/project/beginner-gameplay-scripting.
oblakooblako
Вы слишком злы, в текущий момент это почти middle уровень на юнити.(Сарказм)
cl0ne
Обещаю непременно исправиться :)