Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
A ProximityLight je Fluent Design System paradigma, které napodobuje "přechodové inverzní bodové světlo", které se nachází v blízkosti povrchu objektu. Často se používá pro blízké interakce, aplikace může řídit vlastnosti bezkontaktního světla prostřednictvím ProximityLight komponenty.
Pro materiál, který ProximityLight má být ovlivněn Mixed Reality Toolkit / Standardní shader musí být použit a musí být povolena vlastnost Bezkontaktní světlo.
Poznámka
Ve výchozím nastavení jsou podporovány až dvě ProximityLights .
Příklady
Většina scén v MRTK využívá ProximityLight. Nejběžnější případ použití najdete na webu MRTK/SDK/Features/UX/Prefabs/Cursors/FingerCursor.prefab.
Rozšířené využití
Ve výchozím nastavení můžou materiál najednou svítit jenom dvaProximityLights. Pokud váš projekt vyžaduje k ovlivnění materiálu více než dva ProximityLights, ukázkový kód níže ukazuje, jak toho dosáhnout.
Poznámka
ProximityLights Mnoho osvětlení materiálu zvýší pokyny pro pixel shader a ovlivní výkon. Profilujte tyto změny v rámci projektu.
Jak zvýšit počet dostupných ProximityLights položek ze dvou na čtyři.
// 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;
Poznámka
Pokud Unity zaznamená upozornění podobné následujícímu, musíte Unity restartovat, aby se změny projevily.
Property (_ProximityLightData) exceeds previous array size (24 vs 12). Cap to previous size.