Войти
UnityФорумПрограммирование

Нет перспективы в ScreenSpace-Overlay

#0
(Правка: 16:12) 15:43, 12 мая 2022

Привет всем!
Нужно пересчитать позицию и вращения картинки для режима ScreenSpace-Overlay так, будто UI-элемент находится в WorldSpace.
В режиме ScreenSpace-Camera все работает как надо, удалось сделать чтобы все работало.
Но нужно чтобы пост-эффекты не применялись к UI. Еще есть баг, которому скоро исполнится 10 лет: ссылка на баг.
Если даже сделать cavas.parent=null, то все равно есть jitter / choppy pixels.

Все это вынуждает перенести UI в ScreenSpace-Overlay.

Позицию пересчитываю так:

 RectTransformUtility.WorldToScreenPoint(сamera, point);

и с позицией в ScreenSpace-Overlay вроде проблем нет.

А вот вращение, как оказалось, работает так, будто содержимое канваса в режиме ортограифческой камеры.
То есть если даже и задаю верное вращение UI-элементу, то это не помогает. Пример:
6666 | Нет перспективы в ScreenSpace-Overlay

Как можно сделать так, чтобы UI-элемент не проецировался ортографической камерой?
Я не совсем понимаю где происходит проецирование и возможно ли что-то изменить. Непонятно в каком направлении копать.
Здесь есть подобный вопрос, но проблему так и не решили:
link1
link2

#1
11:57, 13 мая 2022

Alerr
> Но нужно чтобы пост-эффекты не применялись к UI. Еще есть баг, которому скоро
> исполнится 10 лет: ссылка на баг.
Сильно глубоко не вникал, но ты пробовал двигать элемент интерфейса как тебе надо в LateUpdate ?

#2
(Правка: 12:25) 12:24, 13 мая 2022

meekobold
> Сильно глубоко не вникал, но ты пробовал двигать элемент интерфейса как тебе надо в LateUpdate ?
Да, и в инспекторе двигал.
Проблема в том, что в Overlay-режиме все ui-элементы проецируются без учета перспективы (ортографически). На скрине видно:
сврху как должно быть, снизу - как сейчас это выглядит в игре

#3
(Правка: 5:45) 5:42, 14 мая 2022

в общем

If you are using Canvas then you can change Render Mode from Screen Space-Overlay to Screen Space-Camera and dragging your Camera with the Post-Processing Effects to Render Camera and then all effect should be visible on the UI too

не делайте так и будут под эффектами только те UI что нужны.

Также такого можно добиться двумя камерами. Одна будет ренедрить спец.эффекты, другая UI (вот ПОД неё накладываем изображение с 1 камеры).
Две камеры - это очень частый случай в играх, всякие миникарты, разделение UI на замыливанные и не замыленные и прочие штуковины. Главное чтобы они не рисовали одно и то же (выставляется через слои)

#4
10:40, 14 мая 2022

Salamandr
Наданеый момент сделано 2 канваса, да.
Но хотелось бы вынести все в 1 канвас :/

UnityФорумПрограммирование