Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ProximityLight
— это парадигма системы проектирования Fluent Design, которая имитирует градиентное инвертированное точечное освещение при наведении рядом с поверхностью объекта. Часто используется для ближнего взаимодействия, приложение может управлять свойствами Близкого света с помощью ProximityLight
компонента .
Чтобы материал зависел ProximityLight
от Смешанная реальность Toolkit/Standard, необходимо использовать шейдер и включить свойство Proximity Light.
Примечание
По умолчанию поддерживаются до двух ProximityLights
.
Примеры
Большинство сцен в MRTK используют ProximityLight
. Наиболее распространенный вариант использования можно найти в MRTK/SDK/Features/UX/Prefabs/Cursors/FingerCursor.prefab.
Расширенные возможности использования
По умолчанию только два ProximityLights
могут освещать материал одновременно. Если вашему проекту требуется более двух ProximityLights
для влияния на материал , в примере кода ниже показано, как это сделать.
Примечание
Наличие большого количества ProximityLights
освещения материала увеличит инструкции шейдера пикселей и повлияет на производительность. Учтите эти изменения в своем проекте.
Как увеличить число доступных ProximityLights
с двух до четырех.
// 1) Within MRTK/Core/StandardAssets/Shaders/MixedRealityStandard.shader change:
#define PROXIMITY_LIGHT_COUNT 2
// to:
#define PROXIMITY_LIGHT_COUNT 4
// 2) Within MRTK/Core/Utilities/StandardShader/ProximityLight.cs change:
private const int proximityLightCount = 2;
// to:
private const int proximityLightCount = 4;
Примечание
Если Unity регистрирует предупреждение, аналогичное приведенному ниже, необходимо перезапустить Unity, прежде чем изменения вступят в силу.
Property (_ProximityLightData) exceeds previous array size (24 vs 12). Cap to previous size.