Aktualizace z dřívějších verzí

Hledání aktuální verze

Podle těchto pokynů zjistěte, jakou verzi MRTK aktuálně používáte:

  1. Otevřete projekt MRTK v Unity
  2. přejděte do složky "MixedRealityToolkit" v okně Project
  3. Otevřete soubor s názvem "Version".

Pokud soubor a složka výše neexistují, Nacházíte se v novější verzi MRTK. V takovém případě vyzkoušejte následující:

  1. přejděte do složky "Mixed Reality Toolkit Foundation".
  2. Kliknutím na Package. JSON zobrazíte náhled v Unity nebo ho otevřete pomocí textového editoru.
  3. Vyhledejte řádek ve slově Version:

Upgrade na novou verzi MRTK

Důrazně doporučujeme spustit Nástroj pro migraci po získání aktualizace MRTK k automatické opravě a upgradu z zastaralých komponent a úprav na zásadní změny. Nástroj pro migraci je součástí balíčku Tools .

Níže uvedené pokyny popisují cestu k upgradu 2.4.0 na 2.5.0. Pokud je váš projekt na 2.3.0 nebo starší verzi, přečtěte si článek změny mezi verzemi , abyste pochopili cestu k upgradu, nebo si přečtěte předchozí pokyny k vydané verzi, abyste mohli upgradovat na verzi.

Nástroj funkce Mixed reality

Nejjednodušší způsob, jak upgradovat MRTK na novější verzi MRTK, je použití nástroje funkce Mixed reality ke stažení nejnovějších balíčků a jejich načtení přímo do vašeho projektu Unity.

Pokud se dřív používaly soubory assetu Unity (. unitypackage), podívejte se prosím na tyto pokyny.

Soubory assetů Unity (. unitypackage)

Další cestou upgradu je ruční stažení balíčků Unity MRTK a jejich použití ve vašem projektu. Viz následující postup:

  1. Uložte kopii aktuálního projektu pro případ, že v rámci kroků upgradu získáte jakékoli snags.
  2. Zavřít Unity
  3. Ve složce assets (prostředky ) odstraňte následující složky MRTK spolu s jejich soubory. meta (projekt nemusí mít všechny uvedené složky).
    • MRTK/jádro
    • MRTK/příklady
    • MRTK/rozšíření
    • MRTK/poskytovatelé
    • MRTK/SDK
    • MRTK/služby
    • MRTK/StandardAssets

    Důležité

    Pokud se v MRTK shaderech udělaly změny, vytvořte místní zálohu a teprve potom odstraňte složku MRTK/StandardAssets.

    • MRTK/nástroje

    Důležité

    Neodstraňujte složku MixedRealityToolkit. Generated nebo její soubor. meta.

  4. Odstranění složky knihovny

    Důležité

    Některé nástroje Unity, jako je Unity Collab, ukládají informace o konfiguraci do složky knihovny. Pokud používáte nástroj, který to dělá, nejdřív před odstraněním zkopírujte datovou složku nástroje z knihovny a pak ji obnovte po opětovném vygenerování knihovny.

  5. Znovu otevřít projekt v Unity
  6. Importovat nové balíčky Unity
    • Foundation – Import tohoto balíčku jako prvního
    • nástroje
    • Volitelné SND

    Poznámka

    Pokud byla nainstalována další rozšíření, může být nutné je znovu naimportovat.

    • Volitelné 4.6
  7. Zavřete Unity a odstraňte složku knihovny (nejprve si přečtěte poznámku v části.). Tento krok je nezbytný pro vynucení aktualizace své databáze prostředků a sjednocení stávajících vlastních profilů v Unity.
  8. Spusťte Unity a pro každou scénu v projektu
    • Odstraňte z hierarchie MixedRealityToolkit a MixedRealityPlayspace, pokud je k dispozici. Tato akce odstraní hlavní kameru, ale v dalším kroku se znovu vytvoří. Pokud se některé vlastnosti hlavního fotoaparátu ručně změnily, bude nutné je po vytvoření nové kamery znovu použít ručně.
    • Vyberte MixedRealityToolkit- Přidat do scény a nakonfigurujte
    • Vyberte MixedRealityToolkit- Utilities- > Update- > Profiles Mapping Profiles (stačí provést pouze jednou) – bude aktualizovat všechny profily mapování vlastních kontrolérů s aktualizovanými osami a daty a ponechat vlastní přiřazené vstupní akce beze změny.
  9. spusťte nástroj pro migraci a spusťte nástroj na plný Project , abyste zajistili, že veškerý kód bude aktualizován na nejnovější verzi. Okno migrace obsahuje řadu různých obslužných rutin migrace, které se musí spustit samostatně. Tento krok zahrnuje:
    • Vyberte první obslužnou rutinu migrace z rozevíracího seznamu Výběr obslužné rutiny migrace .
    • klikněte na tlačítko "úplné Project".
    • Klikněte na tlačítko "přidat úplný projekt pro migraci" (tím se prohledá celý projekt pro objekty k migraci).
    • Klikněte na tlačítko migrovat, které by mělo být povoleno, pokud byly nalezeny jakékoli migrujované objekty.
    • Opakujte předchozí tři kroky pro všechny obslužné rutiny migrace v rámci rozevíracího seznamu. (Podívejte se na Tento problém , který pokrývá práci, kterou je možné udělat pro zjednodušení tohoto procesu migrace v budoucí verzi).

Přepínání ze souborů assetů Unity na nástroj funkce Mixed reality

Přepínání ze souborů assetů Unity na balíčky nástrojů funkce Mixed reality přináší několik výhod:

  • Snazší aktualizace
  • Rychlejší doba kompilace
  • méně projektů v řešení Visual Studio

Změna na použití nástroje Mixed reality Feature Tool vyžaduje jednorázovou sadu ručních kroků.

  1. Uložte kopii aktuálního projektu.
  2. Zavřít Unity
  3. Ve složce assets (prostředky ) odstraňte následující složky MRTK spolu s jejich soubory. meta (projekt nemusí mít všechny uvedené složky).
    • MRTK/jádro
    • MRTK/příklady
    • MRTK/rozšíření
    • MRTK/poskytovatelé
    • MRTK/SDK
    • MRTK/služby
    • MRTK/StandardAssets

    Důležité

    Pokud se v MRTK shaderech udělaly změny, vytvořte místní zálohu a teprve potom odstraňte složku MRTK/StandardAssets.

    • MRTK/nástroje

    Důležité

    Neodstraňujte složku MixedRealityToolkit. Generated nebo její soubor. meta.

  4. Odstranění složky knihovny

    Důležité

    Některé nástroje Unity, jako je Unity Collab, ukládají informace o konfiguraci do složky knihovny. Pokud používáte nástroj, který to dělá, nejdřív před odstraněním zkopírujte datovou složku nástroje z knihovny a pak ji obnovte po opětovném vygenerování knihovny.

  5. Znovu otevřít projekt v Unity

Po provedení předchozích kroků spusťte Nástroj funkce Mixed reality a importujte požadovanou verzi hybridní reality Toolkit.

Aktualizace 2.3.0 na 2.4.0

Změní název složkyrozhraní API .

Přejmenování složek v 2.4.0

Složky MixedRealityToolkit byly přejmenovány a přesunuty do společné hierarchie verze 2,4. Pokud aplikace používá pevně kódované cesty k MRTK prostředkům, bude nutné je aktualizovat podle následující tabulky.

Předchozí složka Nová složka
MixedRealityToolkit MRTK/jádro
MixedRealityToolkit. Examples MRTK/příklady
MixedRealityToolkit. Extensions MRTK/rozšíření
MixedRealityToolkit. Providers MRTK/poskytovatelé
MixedRealityToolkit. SDK MRTK/SDK
MixedRealityToolkit. Services MRTK/služby
MixedRealityToolkit. Tests MRTK/testy
MixedRealityToolkit. Tools MRTK/nástroje

Důležité

MixedRealityToolkit.GeneratedObsahuje soubory generované zákazníky a zůstává beze změny.

Nastavení očí pohledu v 2.4.0

Tato verze nástroje MRTK upravuje kroky požadované pro nastavení očí pohledu. Zaškrtávací políčko ' IsEyeTrackingEnabled ' lze najít v nastavení pohledu profilu vstupního ukazatele. Zaškrtnutím tohoto políčka povolíte pohledu na bázi očí, ale pak na výchozí pohledu na základě hlav.

Další informace o těchto změnách a kompletní pokyny k nastavení sledování očí najdete v článku věnovaném sledování očí .

Chování ukazatele pohledu očí v 2.4.0

Chování pro výchozí ukazatel oka pohledu bylo upraveno tak, aby se shodovalo s výchozím chováním ukazatele hlavní pohledu. Po zjištění ruky se ukazatel pohledu na oči automaticky potlačí. Po vyslovení "SELECT" se znovu zobrazí ukazatel oka pohledu.

Podrobnosti o nastaveních pohledu a ručních instalací najdete v článku oči a ruce .

Změny rozhraní API v 2.4.0

Vlastní třídy kontroleru

Vlastní třídy kontroleru musely definovat dříve SetupDefaultInteractions(Handedness) . Tato metoda byla v 2,4 zastaralá, protože parametr pro psaní rukou byl redundantní pomocí vlastního pera třídy Controller. Nová metoda nemá žádné parametry. Kromě toho mnoho tříd kontroleru je definováno stejným způsobem ( AssignControllerMappings(DefaultInteractions); ), takže úplné volání bylo refaktorované do BaseController a místo povinného potlačení.

Vlastnosti očí pohledu

UseEyeTrackingVlastnost z GazeProvider implementace IMixedRealityEyeGazeProvider byla přejmenována na IsEyeTrackingEnabled .

Pokud jste to předtím provedli...

if (CoreServices.InputSystem.GazeProvider is GazeProvider gazeProvider)
{
    gazeProvider.UseEyeTracking = true;
}

Provést nyní...

if (CoreServices.InputSystem.GazeProvider is GazeProvider gazeProvider)
{
    gazeProvider.IsEyeTrackingEnabled = true;
}

Vlastnosti WindowsApiChecker

Následující vlastnosti WindowsApiChecker byly označeny jako zastaralé. Použijte prosím IsMethodAvailableIsPropertyAvailable nebo IsTypeAvailable .

  • UniversalApiContractV8_IsAvailable
  • UniversalApiContractV7_IsAvailable
  • UniversalApiContractV6_IsAvailable
  • UniversalApiContractV5_IsAvailable
  • UniversalApiContractV4_IsAvailable
  • UniversalApiContractV3_IsAvailable

Neexistují žádné plány pro přidání vlastností do WindowsApiChecker pro budoucí verze kontraktu rozhraní API.

GltfMeshPrimitiveAttributes jen pro čtení

Primitivní atributy gltf mřížky, které se dají nastavit, jsou teď jen pro čtení. Jejich hodnoty se nastaví jednou při deserializaci.

Migrace ikony vlastního tlačítka

Dříve vlastní ikony tlačítek vyžadovaly přiřazení nového materiálu ke čtyřjádrovému zobrazovacímu panelu. To už není nutné a doporučujeme přesunout vlastní textury ikon do IconSet. Stávající vlastní materiály a ikony jsou zachovány. Budou ale méně optimální, dokud nebudou upgradovány. Chcete-li upgradovat prostředky pro všechna tlačítka v projektu do nového doporučeného formátu, použijte ButtonConfigHelperMigrationHandler. (Mixed Reality Toolkit- > utility – > okno migrace – > výběr obslužné rutiny migrace – > Microsoft. MixedReality. Toolkit. Utilities. ButtonConfigHelperMigrationHandler)

Dialog pro upgrade okna

Pokud během migrace nenalezne ikona ve výchozí sadě ikon, vytvoří se vlastní sada ikon v MixedRealityToolkit. Generated/CustomIconSets. Zobrazí se dialogové okno s oznámením, že to bylo provedeno.

Oznámení vlastní ikony

Aktualizace 2.2.0 na 2.3.0

Změny rozhraní API v 2.3.0

ControllerPoseSynchronizer

Soukromé pole ControllerPoseSynchronizer. uchopení bylo označeno jako zastaralé. To by mělo mít minimální dopad na aplikace, protože pole není viditelné mimo jeho třídu.

Byla odebrána metoda setter vlastnosti Public ControllerPoseSynchronizer. uchopení (#7012).

MSBuild pro Unity

tato verze MRTK používá novější verzi MSBuild pro Unity než předchozí verze. pokud je ve verzi v manifestu správce balíčku Unity uvedená starší verze, zobrazí se dialogové okno konfigurace s zaškrtnutou možností povolit MSBuild pro Unity. Při použití se provede upgrade.

ScriptingUtilities

Třída ScriptingUtilities byla označena jako zastaralá a byla nahrazena ScriptUtilitiesou v Microsoft. MixedReality. Toolkit. Sestavení Editor. Utilities. Nová třída doplní předchozí chování a přidá podporu pro odebrání definic skriptování.

I když bude existující kód nadále fungovat ve verzi 2.3.0, doporučuje se aktualizovat na novou třídu.

ShellHandRayPointer

Členy lineRendererSelected a lineRendererNoTarget třídy ShellHandRayPointer byly nahrazeny lineMaterialSelected a lineMaterialNoTarget v uvedeném pořadí (#6863).

Pro vyřešení chyb kompilace prosím nahraďte lineRendererSelected pomocí lineMaterialSelected a/nebo lineRendererNoTarget s lineMaterialNoTarget.

StartupBehavior prostorového pozorovatele

Prostorové pozorovatele postavené na BaseSpatialObserver třídě teď při opětovném zapnutí (BaseSpatialObserver) dodržují hodnotu StartupBehavior.

K využití této opravy se nevyžadují žádné změny.

Prefabs ovládacího prvku UX – aktualizace pro použití PressableButton

Následující prefabs nyní používají komponentu PressableButton namísto TouchHandler pro téměř interakci (7070)

  • AnimationButton
  • Tlačítko
  • ButtonHoloLens1
  • ButtonHoloLens1Toggle
  • CheckBox
  • RadialSet
  • ToggleButton
  • ToggleSwitch
  • UnityUIButton
  • UnityUICheckboxButton
  • UnityUIRadialButton
  • UnityUIToggleButton

Kód aplikace může vyžadovat aktualizaci z důvodu této změny.

Obor názvů WindowsMixedRealityUtilities

Obor názvů WindowsMixedRealityUtilities se změnil z Microsoft. MixedReality. Toolkit. WindowsMixedReality. Input do Microsoft. MixedReality. Toolkit. WindowsMixedReality (#6863).

Aktualizujte prosím příkazy #using, aby se vyřešily chyby kompilace.

Aktualizace 2.1.0 na 2.2.0

Změny rozhraní API v 2.2.0

IMixedRealityBoundarySystem. obsahuje

Tato metoda dřív trvala v konkrétním experimentálním výčtu podle Unity. Nyní převezme MRTK definovaný výčet, který je totožný s výčtem Unity. Tato změna pomáhá připravit rozhraní API pro budoucí hranice MRTK pro Unity.

MixedRealityServiceProfileAttribute

Pro lepší popis požadavků na podporu profilu se MixedRealityServiceProfileAttribute aktualizoval tak, aby přidal volitelnou kolekci vyloučených typů. V rámci této změny se vlastnost ServiceType změnila z typu na typ [] a byla přejmenována na RequiredTypes.

Byla přidána také druhá vlastnost ExcludedTypes.

Aktualizace 2.0.0 na 2.1.0

Změny rozhraní API v 2.1.0

BaseNearInteractionTouchable

Byla BaseNearInteractionTouchable změněna tak, aby označila OnValidate metodu jako virtuální. Třídy, které rozšířily BaseNearInteractionTouchable (např. NearInteractionTouchableUnityUI ) byly aktualizovány tak, aby odrážely tuto změnu.

ColliderNearInteractionTouchable

ColliderNearInteractionTouchableTřída je zastaralá. Aktualizujte prosím odkazy na kód, který se má použít BaseNearInteractionTouchable .

IMixedRealityMouseDeviceManager

Přidat

IMixedRealityMouseDeviceManager byl přidán CursorSpeed a WheelSpeed Vlastnosti. Tyto vlastnosti umožňují aplikacím zadat hodnotu násobitele, pomocí které se škáluje rychlost kurzoru a kolečka.

Toto je zásadní změna a vyžaduje, aby se změnily existující implementace Správce zařízení myši.

Poznámka

Tato změna není zpětně kompatibilní s verzí 2.0.0.

Zastaralé

MouseInputProfileVlastnost byla označena jako zastaralá a bude odebrána z budoucí verze Microsoft Mixed Reality Toolkit. Doporučuje se, aby kód aplikace tuto vlastnost již nepoužíval.

Interaktivně pracovat

Následující metody a vlastnosti jsou zastaralé a v budoucí verzi Toolkit Microsoft Mixed reality se odeberou. Doporučení je aktualizovat kód aplikace podle pokynů obsažených v zastaralém atributu a zobrazit v konzole nástroje.

  • public bool Enabled
  • public bool FocusEnabled
  • public void ForceUpdateThemes()
  • public bool IsDisabled
  • public bool IsToggleButton
  • public int GetDimensionIndex()
  • public State[] GetStates()
  • public bool RequiresFocus
  • public void ResetBaseStates()
  • public virtual void SetCollision(bool collision)
  • public virtual void SetCustom(bool custom)
  • public void SetDimensionIndex(int index)
  • public virtual void SetDisabled(bool disabled)
  • public virtual void SetFocus(bool focus)
  • public virtual void SetGesture(bool gesture)
  • public virtual void SetGestureMax(bool gesture)
  • public virtual void SetGrab(bool grab)
  • public virtual void SetInteractive(bool interactive)
  • public virtual void SetObservation(bool observation)
  • public virtual void SetObservationTargeted(bool targeted)
  • public virtual void SetPhysicalTouch(bool touch)
  • public virtual void SetPress(bool press)
  • public virtual void SetTargeted(bool targeted)
  • public virtual void SetToggled(bool toggled)
  • public virtual void SetVisited(bool visited)
  • public virtual void SetVoiceCommand(bool voice)

NearInteractionTouchableSurface

NearInteractionTouchableSurfaceTřída byla přidána a nyní slouží jako základní třída pro NearInteractionTouchable a NearInteractionTouchableUnityUI .

Změny profilu v 2.1.0

Profil sledování rukou

Mřížka a společné vizualizace teď mají samostatné nastavení editoru a přehrávače. Profil sledování ruky byl aktualizován, aby bylo možné tyto vizualizace nastavovat. Nothing, vše, Editor nebo přehrávač.

Režimy ruční vizualizace

Aby bylo možné správně pracovat s verzí 2.1.0, může být nutné aktualizovat vlastní profily pro sledování ruky.

Poznámka

Tato změna není zpětně kompatibilní s verzí 2.0.0.

Vstupní profil simulace

Byl upgradován vstupní systém simulace, který ve vstupním profilu simulace změní několik nastavení. Některé změny se nedají migrovat automaticky a uživatelé můžou najít, že profily používají výchozí hodnoty.

  1. Všechny vazby klíče a tlačítka myši v profilu byly nahrazeny obecnou KeyBinding strukturou, která ukládá typ vazby (klíč nebo myš) a také skutečný kód vazby (číslo klávesy nebo tlačítka myši). Struktura má svůj vlastní inspektor, který umožňuje jednotné zobrazení a nabízí nástroj pro automatické vázání k rychlému nastavení vazeb klíčů stisknutím příslušného klíče místo výběru ze obrovských rozevíracích seznamů.

    • FastControlKey
    • ToggleLeftHandKey
    • ToggleRightHandKey
    • LeftHandManipulationKey
    • RightHandManipulationKey
  2. MouseLookToggle byla dříve součástí MouseLookButton výčtu jako InputSimulationMouseButton.Focused , je teď samostatnou možností. Pokud je tato možnost povolená, fotoaparát po uvolnění tlačítka zůstane v pohybu myší, dokud se nestiskne klávesa Escape.

  3. HandDepthMultiplier Výchozí hodnota byla snížena z 0,1 na 0,03, aby se vešly změny v simulaci vstupu. Pokud se kamera při posouvání příliš rychle přesune, zkuste tuto hodnotu snížit.

  4. Klávesy pro otáčení rukou se odebraly. rotace se teď ovládá pomocí myši. Držení HandRotateButton (CTRL) spolu s klíčem pro manipulaci vlevo a vpravo (LShift/mezera) umožní otočení ruky.

  5. Do seznamu osy vstupu byla zavedena nová osa "rozstupná". Tato kontrola pohyb kamery ve vertikálním formátu a výchozí hodnoty pro klávesy Q/E a také pro aktivační tlačítka řadiče.

Další informace o těchto změnách najdete v článku o vstupní simulaci služby .

Profil zprostředkovatele dat myši

Profil zprostředkovatele dat myši byl aktualizován, aby vystavoval nové CursorSpeedWheelSpeed vlastnosti a. U existujících vlastních profilů budou automaticky zadány výchozí hodnoty. Po uložení profilu budou tyto nové hodnoty trvale uloženy.

Profil mapování kontroleru

Některé osy a vstupní typy se v 2.1.0 aktualizovaly, zejména kolem platformy OpenVR. Při upgradu nezapomeňte vybrat Profily mapování MixedRealityToolkit-Utilities- > Update- > Controller . Tím se aktualizují profily mapování vlastních kontrolérů s aktualizovanými osami a daty, zatímco vaše vlastní přiřazené vstupní akce zůstane beze změny.

Aktualizace RC2 na 2.0.0

mezi verzemi RC2 a 2.0.0 Microsoft Mixed Toolkit Reality byly provedeny změny, které mohou mít vliv na existující projekty. Tento dokument popisuje tyto změny a postup aktualizace projektů v 2.0.0 verzi.

Změny rozhraní API v 2.0.0

Od verze RC2 došlo k několika změnám rozhraní API, včetně těch, které by mohly přerušit existující projekty. V následujících částech jsou popsány změny, ke kterým došlo mezi verzemi RC2 a 2.0.0.

MixedRealityToolkit

Následující veřejné vlastnosti objektu MixedRealityToolkit jsou zastaralé.

  • RegisteredMixedRealityServices již neobsahuje kolekci registrovaných služeb rozšíření a zprostředkovatelů dat.

Pro přístup ke službám rozšíření použijte MixedRealityServiceRegistry.TryGetService<T> . Chcete-li získat přístup k poskytovatelům dat, přetypování instance služby na IMixedRealityDataProviderAccess a použít GetDataProvider<T> .

Použijte MixedRealityServiceRegistry nebo CoreServices místo toho pro následující zastaralé vlastnosti

  • ActiveSystems
  • InputSystem
  • BoundarySystem
  • CameraSystem
  • SpatialAwarenessSystem
  • TeleportSystem
  • DiagnosticsSystem
  • SceneSystem

CoreServices

CoreServicesTřída je náhradou za objekty statických přístupových objektů (např.: BoundarySystem) nalezené MixedRealityToolkit v objektu.

Důležité

MixedRealityToolkitPřístupové objekty systému jsou ve verzi 2.0.0 zastaralé a v budoucí verzi MRTK se odeberou.

Následující příklad kódu ukazuje Starý a nový vzor.

// Old
GameObject playAreaVisualization = MixedRealityToolkit.BoundarySystem?.GetPlayAreaVisualization();

// New
GameObject playAreaVisualization = CoreServices.BoundarySystem?.GetPlayAreaVisualization();

Použití nové třídy CoreSystem zajistí, že se kód vaší aplikace nebude muset aktualizovat, pokud aplikaci změníte tak, aby používejte jiného registrátora služeb (např. jednoho z experimentálních správců služeb).

IMixedRealityRaycastProvider

Po přidání objektu IMixedRealityRaycastProvider se změnil konfigurační profil vstupního systému. Pokud máte vlastní profil, může se při spuštění aplikace zobrazit chyby na následujícím obrázku.

Výběr poskytovatele Raycast 1

Pokud chcete tyto potíže vyřešit, přidejte do vstupního profilu systému instanci IMixedRealityRaycastProvider.

Výběr poskytovatele Raycast 2

Systém událostí

  • Staré IMixedRealityEventSystem metody rozhraní API a byly označeny jako RegisterUnregister zastaralé. Zachovají se kvůli zpětné kompatibilitě.
  • InputSystemGlobalListener byla označena jako zastaralá. Jeho funkce se nezměnila.
  • BaseInputHandler Základní třída se změnila z InputSystemGlobalListener na InputSystemGlobalHandlerListener . Jedná se o změnu narušuje všechny potomky BaseInputHandler třídy .

Motivace ke změně

Staré rozhraní API systému RegisterUnregister událostí, které může potenciálně způsobit více problémů za běhu, hlavní je:

  • Pokud komponenta zaregistruje globální události, bude přijímat globální vstupní události všech typů.
  • Pokud jedna z komponent objektu zaregistruje globální vstupní události, budou všechny komponenty tohoto objektu přijímat globální vstupní události všech typů.
  • Pokud se dvě komponenty stejného objektu zaregistrují ke globálním událostem a jedna je v modulu runtime zakázaná, druhá přestane přijímat globální události.

Nové rozhraní API RegisterHandlerUnregisterHandler a :

  • Poskytuje explicitní a podrobnou kontrolu nad to, kterým vstupním událostem by se mělo naslouchat globálně a které by se měly zaměřovat.
  • Umožňuje, aby několik komponent na stejném objektu naslouchaly globálním událostem nezávisle na sobě.

Jak migrovat

  • Pokud jste rozhraní Register/Unregister API volali přímo předtím, nahraďte tato volání voláními RegisterHandler/UnregisterHandler . Rozhraní obslužných rutin, která implementujete, použijte jako obecné parametry. Pokud implementujete více rozhraní a několik z nich naslouchá globálním vstupním událostem, RegisterHandler zavolejte několikrát.
  • Pokud dědíte z InputSystemGlobalListener , změňte dědičnost na InputSystemGlobalHandlerListener . Implementace RegisterHandlersUnregisterHandlers a abstrahování metod Ve volání implementace inputSystem.RegisterHandler ( ) k registraci ve všech inputSystem.UnregisterHandler rozhraních obslužných rutin, pro která chcete naslouchat globálním událostem.
  • Pokud jste dědí z BaseInputHandler , implementujte a RegisterHandlers abstraktní metody UnregisterHandlers (totéž jako pro InputSystemGlobalListener ).

Příklady migrace

// Old
class SampleHandler : MonoBehaviour, IMixedRealitySourceStateHandler, IMixedRealityHandJointHandler
{
    private void OnEnable()
    {
        InputSystem?.Register(gameObject);
    }

    private void OnDisable()
    {
        InputSystem?.Unregister(gameObject);
    }
}

// Migrated
class SampleHandler : MonoBehaviour, IMixedRealitySourceStateHandler, IMixedRealityHandJointHandler
{
    private void OnEnable()
    {
        InputSystem?.RegisterHandler<IMixedRealitySourceStateHandler>(this);
        InputSystem?.RegisterHandler<IMixedRealityHandJointHandler>(this);
    }

    private void OnDisable()
    {
        InputSystem?.UnregisterHandler<IMixedRealitySourceStateHandler>(this);
        InputSystem?.UnregisterHandler<IMixedRealityHandJointHandler>(this);
    }
}
// Old
class SampleHandler2 : InputSystemGlobalListener, IMixedRealitySpeechHandler
{
}

// Migrated
class SampleHandler2 : InputSystemGlobalHandlerListener, IMixedRealitySpeechHandler
{
    private void RegisterHandlers()
    {
        InputSystem?.RegisterHandler<IMixedRealitySpeechHandler>(this);
    }

    private void UnregisterHandlers()
    {
        InputSystem?.UnregisterHandler<IMixedRealitySpeechHandler>(this);
    }
}

// Alternative migration
class SampleHandler2 : MonoBehaviour, IMixedRealitySpeechHandler
{
    private void OnEnable()
    {
        IMixedRealityInputSystem inputSystem;
        if (MixedRealityServiceRegistry.TryGetService<IMixedRealityInputSystem>(out inputSystem))
        {
            inputSystem?.RegisterHandler<IMixedRealitySpeechHandler>(this);
        }
    }

    private void OnDisable()
    {
        IMixedRealityInputSystem inputSystem;
        if (MixedRealityServiceRegistry.TryGetService<IMixedRealityInputSystem>(out inputSystem))
        {
            inputSystem?.UnregisterHandler<IMixedRealitySpeechHandler>(this);
        }
    }
}

Prostorové povědomí

Rozhraní IMixedRealitySpatialAwarenessSystem a IMixedRealitySpatialAwarenessObserver ala několik změn, jak je popsáno níže.

Změny

Následující metody byly přejmenovány, aby lépe popisoval jejich použití.

  • IMixedRealitySpatialAwarenessSystem.CreateSpatialObjectParent byla přejmenována na , IMixedRealitySpatialAwarenessSystem.CreateSpatialAwarenessObservationParent aby bylo vysvětlené jeho použití.

Dodatky

Na základě zpětné vazby od zákazníků jsme přidali podporu pro snadné odebrání dříve pozorovaných dat prostorového povědomí.

  • IMixedRealitySpatialAwarenessSystem.ClearObservations()
  • IMixedRealitySpatialAwarenessSystem.ClearObservations<T>(string name)
  • IMixedRealitySpatialAwarenessObserver.ClearObservations()

Řešiteče

Změnily se některé komponenty řešitel a třída správce SolverHandler, aby se opraví různé chyby a intuitivnější použití.

SolverHandler

  • Třída už nerozšiřuje z ControllerFinder
  • TrackedObjectToReference veřejná vlastnost je zastaralá a byla přejmenována na TrackedTargetType
  • TrackedObjectType zahodí hodnoty & kontroleru vpravo vlevo. Místo toho MotionController použijte hodnoty nebo a HandJoint aktualizujte novou TrackedHandedness vlastnost, abyste omezili sledování na levý nebo pravý kontroler.

InBetween

  • TrackedObjectForSecondTransform veřejná vlastnost je zastaralá a byla přejmenována na SecondTrackedObjectType
  • AttachSecondTransformToNewTrackedObject() byl odebrán. Pokud chcete řešitel aktualizovat, upravte veřejné vlastnosti SecondTrackedObjectType (tj. ).

SurfaceMagnetism

  • MaxDistance veřejná vlastnost je zastaralá a byla přejmenována na MaxRaycastDistance
  • CloseDistance veřejná vlastnost je zastaralá a byla přejmenována na ClosestDistance
  • Výchozí hodnota pro je nyní paprsková vysílání RaycastDirectionMode ve směru sledované cílové transformace TrackedTargetForward vpřed.
  • OrientationMode Hodnoty výčtu a byly přejmenovány na a Vertical v uvedeném FullTrackedTargetSurfaceNormal pořadí.
  • KeepOrientationVertical Byla přidána vlastnost public, která určuje, jestli orientace přidruženého objektu GameObject zůstane svislá.

Tlačítka

  • PressableButton teď má DistanceSpaceMode vlastnost nastavenou Local na výchozí hodnotu. To umožňuje škálovat tlačítka, zatímco je stále možné stisknout.

Oříznutí Sphere

Rozhraní ClippingSphere se změnilo tak, aby zrcadlí rozhraní API nalezená v oříznutíBoxu a oříznutíplane.

Vlastnost Radius oříznutíSphere se teď implicitně počítá na základě škálování transformace. Než vývojáři muset zadat poloměr oříznutíSphere v inspektoru. Pokud chcete změnit poloměr, stačí změnit transformační měřítko transformace běžným způsobem.

NearInteractionTouchable a PokePointer

  • NearInteractionTouchable už nezvládá dotyk plátna uživatelského rozhraní Unity. Třída NearInteractionTouchableUnityUI se teď musí používat pro dotykové ovládání uživatelského rozhraní Unity.
  • ColliderNearInteractionTouchable je nová základní třída pro dotykové ovládání založená na kolacích, tj. každý dotykový s výjimkou NearInteractionTouchableUnityUI.
  • BaseNearInteractionTouchable.DistFront byl přesunut a přejmenován na PokePointer.TouchableDistance Toto je vzdálenost a která může PokePointer komunikovat s dotykovými prvky. Dříve měly jednotlivé dotykové ovládání svou vlastní maximální vzdálenost interakce, ale teď je tato vzdálenost definována v nástroji PokePointer, který umožňuje lepší optimalizaci.
  • BaseNearInteractionTouchable.DistBack se přejmenoval na PokeThreshold. Díky tomu je zřejmé, že PokeThreshold je protějškem debounceThreshold. Touchable se aktivuje při křížku PokeThreshold a uvolní se, když dojde ke křížku DebounceThreshold.

ReadOnlyAttribute

Obor Microsoft.MixedReality.Toolkit názvů byl přidán do , a ReadOnlyAttributeBeginReadOnlyGroupAttributeEndReadOnlyGroupAttribute .

PointerClickHandler

Třída PointerClickHandler je zastaralá. Místo PointerHandler toho by se měl použít , poskytuje stejné funkce.

HoloLens kliknutí na tlačítko

Mapování HoloLens kontroleru se změnilo z nehospodřené na WindowsMixedRealityController nenáročné. WindowsMixedRealityGGVHand Pokud to chcete zohlednit, automaticky se aktualizační nástroj spustí při prvním otevření profilu ControllerMapping. Po upgradu na verzi 2.0.0 alespoň jednou otevřete všechny vlastní profily, aby se tento krok migrace mohl aktivovat.

InteractableHighlight

Třída InteractableHighlight je zastaralá. Místo InteractableOnFocus toho by se měla použít třída a FocusInteractableStates prostředek. Pokud chcete vytvořit nový asset pro , klikněte pravým tlačítkem do okna projektu a vyberte ThemeInteractableOnFocusTheme>InteractableOnFocus>>Theme (Vytvořit interaktivní >>

HandInteractionPanZoom

HandInteractionPanZoom se přesunula do oboru názvů uživatelského rozhraní, protože se nesovávala jako vstupní komponenta. HandPanEventData také byl přesunut do tohoto oboru názvů a zjednodušeně tak, aby odpovídal ostatním datům událostí uživatelského rozhraní.

Změny názvu sestavení ve 2.0.0

Ve verzi 2.0.0 byly aktualizovány všechny oficiální názvy sestavení Mixed Reality Toolkit a jejich přidružené soubory definice sestavení (.asmdef), aby odpovídaly následujícímu vzoru.

Microsoft.MixedReality.Toolkit[.<name>]

V některých případech bylo sloučeno více sestavení, aby bylo možné vytvořit lepší jednotu jejich obsahu. Pokud váš projekt používá vlastní soubory .asmdef, mohou vyžadovat aktualizaci.

Následující tabulky popisují, jak se názvy souborů .asmdef RC2 mapují na verzi 2.0.0. Všechny názvy sestavení odpovídají názvu souboru .asmdef.

MixedRealityToolkit

RC2 2.0.0
MixedRealityToolkit.asmdef Microsoft.MixedReality. Toolkit.asmdef
MixedRealityToolkit.Core.BuildAndDeploy.asmdef Microsoft.MixedReality. Toolkit. Editor.BuildAndDeploy.asmdef
MixedRealityToolkit. Core. definitions. Utilities. Editor. asmdef Odebrané, použijte Microsoft. MixedReality. Toolkit. Editor. Utilities. asmdef
MixedRealityToolkit. Core. Extensions. EditorClassExtensions. asmdef Microsoft. MixedReality. Toolkit. Editor. ClassExtensions. asmdef
MixedRealityToolkit. Core. Inspectors. asmdef Microsoft. MixedReality. Toolkit. Editor. Inspectors. asmdef
MixedRealityToolkit. Core. Inspectors. ServiceInspectors. asmdef Microsoft. MixedReality. Toolkit. Editor. ServiceInspectors. asmdef
MixedRealityToolkit. Core. UtilitiesAsync. asmdef Microsoft. MixedReality. Toolkit. Async. asmdef
MixedRealityToolkit. Core. Utilities. Editor. asmdef Microsoft. MixedReality. Toolkit. Editor. Utilities. asmdef
MixedRealityToolkit. Utilities. Gltf. asmdef Microsoft. MixedReality. Toolkit. Gltf.asmdef
MixedRealityToolkit. Utilities. Gltf. Imports. asmdef Microsoft. MixedReality. Toolkit. Gltf. Imports. asmdef

MixedRealityToolkit. Providers

RC2 2.0.0
MixedRealityToolkit. Providers. OpenVR. asmdef Microsoft. MixedReality. Toolkit. Providers. OpenVR. asmdef
MixedRealityToolkit. Providers. WindowsMixedReality. asmdef Microsoft. MixedReality. Toolkit. Providers. WindowsMixedReality. asmdef
MixedRealityToolkit. Providers. WindowsVoiceInput. asmdef Microsoft. MixedReality. Toolkit. Providers. WindowsVoiceInput. asmdef

MixedRealityToolkit. Services

RC2 2.0.0
MixedRealityToolkit. Services. BoundarySystem. asmdef Microsoft. MixedReality. Toolkit. Services. BoundarySystem. asmdef
MixedRealityToolkit. Services. CameraSystem. asmdef Microsoft. MixedReality. Toolkit. Services. CameraSystem. asmdef
MixedRealityToolkit. Services. DiagnosticsSystem. asmdef Microsoft. MixedReality. Toolkit. Services. DiagnosticsSystem. asmdef
MixedRealityToolkit. Services. InputSimulation. asmdef Microsoft. MixedReality. Toolkit. Services. InputSimulation. asmdef
MixedRealityToolkit. Services. InputSimulation. Editor. asmdef Microsoft. MixedReality. Toolkit. Services. InputSimulation. Editor. asmdef
MixedRealityToolkit. Services. InputSystem. asmdef Microsoft. MixedReality. Toolkit. Services. InputSystem. asmdef
MixedRealityToolkit. Services. Inspectors. asmdef Microsoft. MixedReality. Toolkit. Services. InputSystem. Editor. asmdef
MixedRealityToolkit. Services. SceneSystem. asmdef Microsoft. MixedReality. Toolkit. Services. SceneSystem. asmdef
MixedRealityToolkit. Services. SpatialAwarenessSystem. asmdef Microsoft. MixedReality. Toolkit. Services. SpatialAwarenessSystem. asmdef
MixedRealityToolkit. Services. TeleportSystem. asmdef Microsoft. MixedReality. Toolkit. Services. TeleportSystem. asmdef

MixedRealityToolkit. SDK

RC2 2.0.0
MixedRealityToolkit. SDK. asmdef Microsoft. MixedReality. Toolkit. Sada SDK. asmdef
MixedRealityToolkit. SDK. Inspectors. asmdef Microsoft. MixedReality. Toolkit. Sadě. Inspectors. asmdef

MixedRealityToolkit. Examples

RC2 2.0.0
MixedRealityToolkit. Examples. asmdef Microsoft. MixedReality. Toolkit. Příklady. asmdef
MixedRealityToolkit. Examples. demos. Gltf. asmdef Microsoft. MixedReality. Toolkit. Ukázky. Gltf. asmdef
MixedRealityToolkit. Examples. demos. StandardShader. Inspectors. asmdef Microsoft. MixedReality. Toolkit. Ukázky. StandardShader. Inspectors. asmdef
MixedRealityToolkit. Examples. demos. Utilities. InspectorFields. asmdef Microsoft. MixedReality. Toolkit. Ukázky. InspectorFields. asmdef
MixedRealityToolkit. Examples. demos. Utilities. InspectorFields. Inspectors. asmdef Microsoft. MixedReality. Toolkit. Ukázky. InspectorFields. Inspectors. asmdef
MixedRealityToolkit. Examples. demos. UX. Interactables. asmdef Microsoft. MixedReality. Toolkit. Ukázky. UX. Interactables. asmdef