Хинт в UGUI ? [решено]

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

Хинт в UGUI ? [решено]

Сообщение Woolf 15 апр 2020, 09:21

Что-то опять поломал я свою голову )

Есть вот такой хинт, обычно он в скрытом состоянии, но при наведении на иконку появляется
Изображение

При старте игры он приунпарентен к иконке (каждый к своей), но в Start скрипта иконки делается hintPanel.parent = mainCanvas для того, чтобы эти хинты были поверх всего остального интерфейса. И по итогу, он улетает фиг знает куда.
Как сделать так, чтобы хинт не менял свои координаты при репаренте его на на любой UI объект с любыми анкорами и привязками?
Другими словами, как мне получить его глобальную позицию в канвасе и присвоить её?

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

Re: Хинт в UGUI ?

Сообщение 1max1 15 апр 2020, 09:45

hint.position = obj.position так не работает? Они на одном и том же канвасе?
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Хинт в UGUI ?

Сообщение Woolf 15 апр 2020, 09:47

1max1 писал(а):hint.position = obj.position так не работает? Они на одном и том же канвасе?


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

Re: Хинт в UGUI ?

Сообщение Tolking 15 апр 2020, 09:51

Есть https://docs.unity3d.com/ScriptReference/RectTransformUtility.html
Есть https://docs.unity3d.com/ScriptReference/RectTransform-anchoredPosition.html

И лучше сделать свой канвас для хинта и в нем назначить ордер. Прям на хинт кинь кавас и переназнач ордер...
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2715
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула

Re: Хинт в UGUI ?

Сообщение 1max1 15 апр 2020, 10:59

к сожалению, не работает..

Что это значит? Позиция будет одна и та же, кавас - один и тот же, значит все должно работать.
1. Парентишь хинт к канвасу, именно в канвас, а не в иконку или еще куда-то hint.transform.SetParent(canvas).
2. Ставишь порядок хинту на последний hint.transform.SetAsLastSibling().
3. Устанавливаешь такую же позицию что и иконке hint.position = icon.position.
Если у тебя 2 канваса, которые могут перекрывать друг друга, есть смысл сделать отдельный канвас для хинтов с большим приоритетом отрисовки.
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Хинт в UGUI ?

Сообщение Woland 15 апр 2020, 12:09

Получаешь screen координаты объекта, куда тебе нужно поставить тултип
Потом в коде пишешь
Синтаксис:
Используется csharp
тултип.GetComponent<RectTransform>().anchoredPosition=screen координаты объекта - new Vector3(Screen.width / 2, Screen.height / 2, 0)
 
Woland
Адепт
 
Сообщения: 1240
Зарегистрирован: 20 апр 2013, 18:09
  • Сайт

Re: Хинт в UGUI ?

Сообщение Woolf 16 апр 2020, 05:06

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


Вернуться в uGUI

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

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