Как получить геометрию области рендеринга игры (Rect) в редакторе Unity? не только GameViewC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как получить геометрию области рендеринга игры (Rect) в редакторе Unity? не только GameView

Сообщение Anonymous »

Я пару дней пытался получить геометрию области рендеринга редактора Unity. Я имею в виду прямоугольник/ограничивающий прямоугольник, показанный красным на следующем изображении, причем его координаты либо относительно геометрии дисплея, либо, по крайней мере, внутри геометрии верхнего окна
Изображение

Я нашел интересное предложение:

Код: Выделить всё

private Rect GetMainGameViewPosition()
{
System.Reflection.Assembly assembly = typeof(EditorWindow).Assembly;
Type type = assembly.GetType("UnityEditor.GameView");
EditorWindow gameview = EditorWindow.GetWindow(type);
return gameview.position;
}
Однако после долгих проб и ошибок я обнаружил, что это возвращает то, что предназначено как Rect, показанное желтым цветом на рисунке. Ниже я пишу объяснение, почему я говорю «предназначено», но мой ключевой вопрос остается:
Как мне программно получить геометрию области, выделенной красным? Решение должно учитывать текущий масштаб (например, 1x-10x) и панорамирование.
Мотивация: если вам интересно, зачем мне это нужно, то потому, что У меня есть устройство отслеживания глаз, координаты которого доступны относительно дисплея, и мне нужно в реальном времени сопоставить их с областью, выделенной красным, чтобы я мог связать входные данные отслеживания глаз с игровым контентом.
Причина, по которой я говорю «предназначено», заключается в том, что я столкнулся с неожиданным поведением: я ввожу в консоль полученную геометрию «GameView» (x:472, y:73, ширина:1447, высота:656), и хотя ширина и высота точно соответствуют желтой области (обратите внимание, что она содержит часть панели управления), кажется, что x, y соответствуют только точке в верхнем левом углу область выбора вкладки «Сцена/Игра», поэтому я нарисовал там зеленый прямоугольник (именно размером 472х73). Обратите внимание, что эта интерпретация не исправляется перемещением зеленого прямоугольника в верхнюю левую точку кнопки «Файл».

Подробнее здесь: https://stackoverflow.com/questions/785 ... or-not-jus
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как преобразовать сферическую геометрию в геометрию эллипсоида Генерация вершин C++
    Anonymous » » в форуме C++
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Как преобразовать сферическую геометрию в геометрию эллипсоида Генерация вершин C++
    Anonymous » » в форуме C++
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Постобработка скрывает игровые объекты в Gameview и во время выполнения игры?
    Anonymous » » в форуме C#
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • TextMeshPro Text Object не виден в Unity Gameview
    Anonymous » » в форуме C#
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Невозможно прокрутить в Scroll Rect с единицей входных полей Unity
    Anonymous » » в форуме C#
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»