Пятница, 29 Марта 2024, 01:00

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Raycast в UI (Откуда стрелять?)
Raycast в UI
SrJeonnyДата: Понедельник, 05 Марта 2018, 00:27 | Сообщение # 1
был не раз
Сейчас нет на сайте
Добрый вечер господа. Дорабатываю инвентарь и возникли проблемы. При удалении панельки (слота в инвентаре) он пускает луч в слот ниже, а тот в следующий слот и так пока слоты не закончатся, все слоты, на которых подействовала эта магия смещаются вверх на величину удаленного слота. Так вот возникла проблема с пулянием рейкаста. Не пойму откуда стрелять то? Код с пояснением:
Код

public void InventorySort () {
  rtransform = gameObject.GetComponent<RectTransform> (); // пробую взять ректрансформ (ведь он аналог трансформа для UI)
  int layerMask = 1 << 5;
  RaycastHit2D hit = Physics2D.Raycast (rtransform.anchoredPosition, -Vector2.up, 50, layerMask); //Пытаюсь стрелять из ректпозиции вниз на 50 едениц (хотя до следующего слота меньше 30)
  if (hit.collider != null) { //тут уже не важно
   Debug.Log (hit.collider.name);
  } else
   return;
    }

Собстна не пойму откуда стрелять то? Стреляю из transform.position так луча нет нигде, из anchoredPosition тоже не видать. Может есть какая-то мудрость или я чего-то не понимаю?
П.С : Коллайдеры на слотах висят в режиме триггера, коллайдеры 2д, луч 2д.

Добавлено (05 Марта 2018, 00:27)
---------------------------------------------
Господа, я тут подумал что мне могут ответить. Ну придет умный дядя и скажет : "Убирай 50, ставь Mathf.Infinity, всё равно столкнется. Тогда и трансформ позишон сработает", проверил и работает! Всем спасибо!
П.С : Извините за шизофрению, наверно неудобно получилось
П.С2 : Админы, за такой балаган готов ответить по всей строгости, но может быть это пригодится новичкам или странникам с измученными мозгами

Сообщение отредактировал SrJeonny - Понедельник, 05 Марта 2018, 00:23
FlyOfFlyДата: Понедельник, 05 Марта 2018, 08:50 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
Цитата SrJeonny ()

---------------------------------------------
Господа, я тут подумал что мне могут ответить. Ну придет умный дядя и скажет : "Убирай 50, ставь Mathf.Infinity, всё равно столкнется. Тогда и трансформ позишон сработает", проверил и работает! Всем спасибо!
П.С : Извините за шизофрению, наверно неудобно получилось
П.С2 : Админы, за такой балаган готов ответить по всей строгости, но может быть это пригодится новичкам или странникам с измученными мозгами

Это не шиза, а разговор с утенком. Он тебе часто будет помогать
SrJeonnyДата: Понедельник, 05 Марта 2018, 15:48 | Сообщение # 3
был не раз
Сейчас нет на сайте
Оффтоп или не оффтоп, вообщем если кто-то сюда зайдет, то наверно не зря, дабы не плодить темы хочу задать вопрос, тесно связанный с изначальной темой. Стрельнул в слот, он переместил его на место того, из которого был луч ( и который удалился сразу после луча), а как запустить цепную реакцию на остальные слоты?
Код :

Тонкости с hit"ом и ду вайлами взрывают мне мозг, что делать?
FlyOfFlyДата: Вторник, 06 Марта 2018, 04:51 | Сообщение # 4
заслуженный участник
Сейчас нет на сайте
Цитата SrJeonny ()
Стрельнул в слот, он переместил его на место того, из которого был луч ( и который удалился сразу после луча), а как запустить цепную реакцию на остальные слоты?

рекурсивно повторяешь тоже самое с другими слотами. не?
OtinagiДата: Вторник, 06 Марта 2018, 08:28 | Сообщение # 5
постоянный участник
Сейчас нет на сайте
А почему нельзя использовать какой-нибудь список или массив с панельками инвентаря и по нему уже шагать, удалять, перемещать? Не понадобятся никакие рекурсии оО, рейкасты Оо, и производительность будет повыше.

«Смерти меньше всего боятся те люди, чья жизнь имеет наибольшую ценность.»
Иммануил Кант
FlyOfFlyДата: Вторник, 06 Марта 2018, 15:52 | Сообщение # 6
заслуженный участник
Сейчас нет на сайте
Цитата Otinagi ()
А почему нельзя использовать какой-нибудь список или массив с панельками инвентаря и по нему уже шагать, удалять, перемещать? Не понадобятся никакие рекурсии оО, рейкасты Оо, и производительность будет повыше.

По хорошему даже массив не нужен, там есть встроенные сетки, которые позволяют разместить объекты друг под другом в реалтайме
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Raycast в UI (Откуда стрелять?)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг