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 HoverLight
Mixed 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.