Я пытаюсь сделать все, что отображается в моей перспективе «Камера A», на 100 пунктов выше. Это связано с тем, что мое приложение имеет интерфейс с открытым пространством в верхней части.Смещение визуализированного результата камеры в Unity
В моем приложении используется распознавание лиц для имитации движения лица в игровом аватаре. Для этого я вычислил «Model-View-Matrix», чтобы установить его в «worldToCameraMatrix» камеры.
До сих пор это хорошо работает, но все создается с центром в качестве источника, теперь я хочу переместить это начало центра на определенное расстояние «вверх», чтобы оно соответствовало моему интерфейсу.
Есть ли способ сказать Unity, чтобы компенсировать результат рендеринга камеры?
Альтернатива, о которой я думал, заключается в рендеринге в текстуру, тогда я могу просто переместить текстуру, но я думал, что должен быть более простой способ.
Кстати, моя основная камера является орфографической, и я использую эту для рендеринга текстуры камеры. В этом случае простое перемещение объекта рендеринга в квадрат вверх делает трюк.
Я нашел свойство «pixelRect», описание говорит:
Где на экране камеры отображаются в пиксельных координатах.
Однако перемещение центра вверх, кажется, уменьшает мои объекты.
Не уверен, что я получаю то, что вы пытаетесь получить, но попробуйте изменить значение в Viewport прямоугольнике компоненты камеры. Возможно, это то, что вы хотите. – Everts
Видовое окно, похоже, изменяет масштаб сделанного. Все, что я хочу, это заставить вещи появляться на экране выше (не в 3D-мире) – Pochi
yeh [camera rect] (http://docs.unity3d.com/ScriptReference/Camera-rect.html) не идеальна, потому что не влияет на фактическую площадь экрана. Вам просто нужно будет компенсировать масштабирование, отрегулировав значение 'orthographicSize' вашей камеры. альтернативно, постройте корректировку смещения в своих вычислениях для worldToCameraMatrix, как вы говорите, используйте текстуру – Rob