Показать сообщение отдельно
Старый 10.11.2015, 08:12   #11
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Проделки позиции элемента GUI

не знаю как вы, а я делаю все просто:
Vector3 pos RectTransformUtility.WorldToScreenPoint (Camera.maintarget.position );
        
//pos.z=-1f;

transform.position pos
(не знаю зачем эта обертка, вызывается все равно метод камеры, только сейчас референс провел и помотрел как и что)

Canvas в overlay стоит, иначе пляски с бубном начинаются.
А если канва в WorldSpace, то там объекты находятся в мировом пространстве и нужно сделать сначала WorldToScreen а потом ScreenToWorld, но уже с z-глубиной канваса, иначе все будет смещаться . (не знаю другого способа трансформировать координаты относительно матрицы вида камеры)

Тут еще смещение может быть из-за того, что точка объекта выше самого объекта. Как у меня тут:


Трансформ-бокс стоит строго по центру, но анхор у флажка выдвинут по z вперед, что бы относительно нуля стоял, а так как камера перспективная - получается такое смещение.
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо RegIon за это полезное сообщение:
ABTOMAT (10.11.2015), pax (10.11.2015)