Interactable
легко.Если Graphic Raycaster находит на кнопке событие (наведение мыши, щелчок, отключение мыши и т. Д.), Реагирует ли оно на эти события?Если Interactable
истинно, то будет.
Два других требуют некоторого объяснения.
Слои используются для обработки столкновений с Физикой лучевого вещания Unity.
Слой Ignore Raycast
, как и любой другой слой, обычно предназначен для игнорирования лучевыми трансляциями Физики. Это зависит от кода, который создает лучевую трансляцию Физики, чтобы решить, действительно ли игнорируются коллайдеры на объектах в слое Ignore Raycast
. Например, если вы создаете лучевую трансляцию Физики с маской Physics.IgnoreRaycastLayer
, тогдаон будет сталкиваться только с коллайдерами объектов в слое Ignore Raycast
.
Однако, опять же, этот параметр имеет дело с физическими лучевыми трансляциями
Raycast Target
имеет дело с Unity Графика Raycaster - так Unity обрабатывает взаимодействие с элементами пользовательского интерфейса (по умолчанию).Графический Raycaster полностью независим от физики raycast и того, как он маскируется слоями.Вместо слоев, Graphic Raycaster позволяет контролировать столкновения двумя способами.
Первым из этих способов является то, что называется UI.GraphicRaycaster.BlockingObjects
, которое останавливает лучевую трансляцию, когда он ударяется о 2d объекты или 3d объекты, оба или ни того, ни другого.
Второй из этих способов - это где Ignore Raycast
вступает в игру.
Raycast Target
элемента пользовательского интерфейса определяет, останавливаются ли в этом элементе радиопередачи, которые сталкиваются с этим элементом, поэтому с объектами под ним также не взаимодействуют.Если Raycast Target
включено, то при наведении курсора мыши или нажатии кнопки или чего-либо еще он будет реагировать, однако настроен на это, , но все, что ниже кнопки , не будет имейте это событие взаимодействия.
Например, предположим, что вы хотите создать всплывающее окно, с которым можно взаимодействовать таким образом, чтобы они случайно не нажимали на кнопки под всплывающим окном.В этом случае вы захотите включить Raycast Target
для всплывающего окна и его кнопок и т. Д.
TL; DR:
Interactable
определяет, включена ли кнопка илиотключен сам по себе. Raycast Target
определяет, блокирует ли кнопка закрытые ею действия. Ignore Raycast
определяет, будет ли Physics raycasts игнорировать присоединенные к нему коллайдеры по умолчанию.