Lumière 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
nuanceur Mixed Reality Toolkit/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 sera 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 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
HoverLights
Dix seulement peuvent éclairer un matériau à la fois. Si votre projet nécessite plus de dix HoverLights
pour influencer un matériau , l’exemple de code ci-dessous montre comment y parvenir.
Notes
Un grand nombre d’éléments HoverLights
éclairent un matériau augmente les instructions du nuanceur de pixels et ont 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.