Feu de pointage — MRTK2

Un HoverLight est un paradigme du Système Fluent Design qui imite une lumière ponctuelle pointant près de la surface d’un objet. Souvent utilisée pour les interactions à distance, l’application peut contrôler les propriétés d’une lumière de pointage via le composant HoverLight.

Pour qu’un matériau soit influencé par un HoverLightMixed Reality Kit de ressources/nuanceur Standard doit être utilisé et la propriété Hover Light doit être activée.

Notes

Le nuanceur MRTK/Standard prend en charge jusqu’à deux HoverLights par défaut, mais est mis à l’échelle pour prendre en charge quatre, puis dix à mesure que d’autres lumières sont ajoutées à la scène.

Exemples

La plupart des scènes dans MRTK utilisent un HoverLight. Le cas d’usage le plus courant se trouve sur le MRTK/SDK/Features/UX/Prefabs/Cursors/DefaultCursor.prefab

La scène HoverLightExamples illustre également l’utilisation des HoverLight comportements et se trouve à l’adresse : MRTK/Examples/Demos/StandardShader/Scenes/

Utilisation avancée

Seulement dix HoverLights peuvent éclairer un matériau à la fois. Si votre projet en nécessite plus de dix HoverLights pour influencer un matériau , l’exemple de code ci-dessous montre comment y parvenir.

Notes

Le fait d’éclairer HoverLights un matériau augmente les instructions du nuanceur de pixels et aura un impact sur les performances. Profilez ces changements dans votre projet.

Comment augmenter le nombre de disponibles HoverLights de dix à douze.

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

Notes

Si Unity journalise un avertissement similaire à celui ci-dessous, vous devez redémarrer Unity pour que vos modifications prennent effet.

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

Voir aussi