Индикатор при наведении — MRTK2

HoverLight — это парадигма системы проектирования Fluent Design, которая имитирует точечное освещение при наведении рядом с поверхностью объекта. Это приложение, часто используемое для дальнего взаимодействия, может управлять свойствами освещения при наведении с помощью компонента HoverLight.

Чтобы на материал повлияло HoverLightСмешанная реальность Toolkit/Standard шейдер, и должно быть включено свойство Hover Light.

Примечание

Шейдер MRTK/Standard поддерживает до двух HoverLights по умолчанию, но будет масштабироваться для поддержки четырех, а затем десяти, так как в сцену добавляются дополнительные индикаторы.

Примеры

Большинство сцен в MRTK используют HoverLight. Наиболее распространенный вариант использования можно найти на странице MRTK/SDK/Features/UX/Prefabs/Cursors/DefaultCursor.prefab.

Сцена HoverLightExamples также демонстрирует использование HoverLight поведения. Ее можно найти по адресу MRTK/Examples/Demos/StandardShader/Scenes/

Расширенные возможности использования

Только десять HoverLights могут освещать материал за раз. Если вашему проекту требуется более десяти HoverLights , чтобы повлиять на материал , в примере кода ниже показано, как это сделать.

Примечание

Наличие большого количества HoverLights освещения материала увеличит инструкции шейдера пикселей и повлияет на производительность. Учтите эти изменения в своем проекте.

Как увеличить число доступных HoverLights с десяти до двенадцати.

// 1) Within MRTK/Core/StandardAssets/Shaders/MixedRealityStandard.shader change:

#if defined(_HOVER_LIGHT_HIGH)
#define HOVER_LIGHT_COUNT 10

// to:

#if defined(_HOVER_LIGHT_HIGH)
#define HOVER_LIGHT_COUNT 12

// 2) Within MRTK/Core/Utilities/StandardShader/HoverLight.cs change:

private const int hoverLightCountHigh = 10;

// to:

private const int hoverLightCountHigh = 12;

Примечание

Если Unity регистрирует предупреждение, аналогичное приведенному ниже, необходимо перезапустить Unity, прежде чем изменения вступят в силу.

Property (_HoverLightData) exceeds previous array size (24 vs 20). Cap to previous >size.

См. также раздел