New UI экранные координаты

Графический интерфейс пользователя

New UI экранные координаты

Сообщение Woolf 27 июн 2017, 17:08

Товарищи, такой вопрос. Вот есть на экране некая панель глубокого вложения (там канвас, в канвасе еще что-то, и еще, и только потом эта самая панель).
Пользователь может перемещать эту панель по экрану. По событию drag её координаты записываются в PlayerPrefs, а при старте восстанавливаются.

Проблема в том, чтобы определить, находится ли эта самая панель в экранных координатах, а то игроки могут её утащить за пределы экрана, а aligment этой панели может быть любой, к правому верхнему углу, к центру, к нижнему углу и так далее. Как в этом случае сделать контроль нахождения панели в экране? А то из-за алигмента координаты, считанные с rectransform совершенно разные, от -Screen.width до +Screen.width

Также, хотелось бы иметь однозначный метод чтения координат панели в экранных координатах, и установку в экранных, не взирая на aligment
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: New UI экранные координаты

Сообщение snezhok_13 27 июн 2017, 17:36

Не взирая на alignment - anchoredPosition, это локальные координаты pivot-поинта (который скорее всего будет совпадать с центром), их можно перевести в мировые, с помощью transform.TransformPoint, а из мировых можно получить экранные просто. По идее это будет решать все-все случаи (popcorn)
Разработка игр, немножко игровая журналистика, сейчас делаем Календарь: даты выхода игр
Аватара пользователя
snezhok_13
UNIверсал
 
Сообщения: 450
Зарегистрирован: 09 сен 2013, 11:12
Skype: s.coremission
  • Сайт

Re: New UI экранные координаты

Сообщение eonyanov 17 июл 2017, 15:28

Есть такая утилита
https://docs.unity3d.com/ScriptReferenc ... ility.html

И есть у самого RectTransform пару методов, которые могут помочь: TransformPoint, InverseTransformPoint.

Ну и можно все это комбинировать с методами камеры для преобразования координат.
Glow Asteroids Game
Happy Chair
Аватара пользователя
eonyanov
UNITрон
 
Сообщения: 298
Зарегистрирован: 22 авг 2014, 10:28


Вернуться в uGUI

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1