Unity: Как заставить физический 2D-рейкастер проходить через элементы пользовательского интерфейса?C#

Место общения программистов C#
Ответить
Anonymous
 Unity: Как заставить физический 2D-рейкастер проходить через элементы пользовательского интерфейса?

Сообщение Anonymous »

Я работаю над мобильной игрой. У меня возникли проблемы с raycast и событиями.

У меня есть холст наложения экранного пространства с изображением пользовательского интерфейса, покрывающим область A. Это изображение установлено на прозрачность. Его цель — получение вводимых пользователем данных.

У меня также есть объект мировой игры, 2D-спрайт, который находится внутри этой области A. К этому спрайту прикреплен 2D-коллайдер. Этот спрайт действует как мировой объект (например, здание), на который пользователь может нажимать.

Я настроил физический 2D-рейкастер для обнаружения входных данных в 2D-спрайте. Проблема, с которой я столкнулся, заключается в том, что изображение пользовательского интерфейса, очевидно, блокирует 2D-физическую передачу на 2D-спрайт. Только когда я отключу изображение пользовательского интерфейса, я смогу получить событие физического raycast.

Помощь. Я делаю что-то не так? Я думал, что физика 2D-рейкаста реагирует только на компоненты 2D-физики?

Изображение


Это скрипт, прикрепленный к 2D-спрайту.

using UnityEngine.EventSystems;
public class SpriteSelector : MonoBehaviour, IPointerDownHandler
{
public void OnPointerDown(PointerEventData eventData)
{
Debug.Log("Sprite selected");
}
}


Это скрипт, прикрепленный к изображению пользовательского интерфейса.

using UnityEngine.EventSystems;
public class UIImageSelector : MonoBehaviour, IPointerDownHandler
{
public void OnPointerDown(PointerEventData eventData)
{
Debug.Log("UI Image selected");
}
}


Подробнее здесь: https://stackoverflow.com/questions/571 ... i-elements
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»