We've moved!

Starting from MRTK 2.6, we are publishing both conceptual docs and API references on docs.microsoft.com. For conceptual docs, please visit our new landing page. For API references, please visit the MRTK-Unity section of the dot net API explorer. Existing content will remain here but will not be updated further.

Search Results for

    Show / Hide Table of Contents

    Proximity Light

    A ProximityLight is a Fluent Design System paradigm that mimics a "gradient inverse point light" hovering near the surface of an object. Often used for near interactions, the application can control the properties of a Proximity Light via the ProximityLight component.

    For a material to be influenced by a ProximityLight the Mixed Reality Toolkit/Standard shader must be used and the Proximity Light property must be enabled.

    Note

    Up to two ProximityLights are supported by default.

    Examples

    Most scenes within the MRTK utilize a ProximityLight. The most common use case can be found on the MRTK/SDK/Features/UX/Prefabs/Cursors/FingerCursor.prefab

    Advanced Usage

    By default only two ProximityLights can illuminate a material at a time. If your project requires more than two ProximityLights to influence a material the sample code below demonstrates how to achieve this.

    Note

    Having many ProximityLights illuminate a material will increase pixel shader instructions and will impact performance. Please profile these changes within your project.

    How to increase the number of available ProximityLights from two to four.

    // 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;
    
    Note

    If Unity logs a warning similar to below then you must restart Unity before your changes will take effect.

    Property (_ProximityLightData) exceeds previous array size (24 vs 12). Cap to previous size.

    See also

    • MRTK Standard Shader
    • Improve this Doc
    In This Article
    Back to top Generated by DocFX