A Microsoft Mixed Reality Toolkit 2.5 kibocsátási megjegyzései
Fontos
Van egy ismert fordítói probléma, amely hatással van az ARM64-et használó Microsoft HoloLens 2-hez készült alkalmazásokra. Ezt a problémát a Visual Studio 2019 16.8-os vagy újabb verziójára való frissítésével hárítottuk el. Ha nem tudja frissíteni a Visual Studiót, importálja a com.microsoft.mixedreality.toolkit.tools
csomagot egy kerülő megoldás alkalmazásához.
A 2.5.4 újdonságai
Kijavítottuk az Oculus-integrációval kapcsolatos hibát a UPM használatakor
UpM használata esetén az OculusXRSDKDeviceManagerProfile indításkor mindig a None (Nincs) értékű előtagokkal rendelkezik. Ez a kiadás úgy konfigurálja a Eszközkezelő, hogy indításkor egy működő előregyártott készletre mutasson.
Kijavítottuk az OpenXR UPM-en keresztüli hibáját
Kijavítottunk egy hibát, amely miatt az OpenXR-szolgáltatók alapértelmezés szerint nem lettek hozzáadva a link.xml, ami miatt az új projektek nem futnak az eszközön, amikor a Unity Csomagkezelőjén keresztül OpenXR- és MRTK-t használnak. A meglévő, frissített projektekhez továbbra is manuálisan kell hozzáadni.
A 2.5.3 újdonságai
Kijavít egy regressziót a 2.5.2-ben bevezetett Oculus használatával
A 2.5.2 buildelési problémát vezetett be az Oculus SDK integrálása során. Ez a kiadás visszaállítja ezt a problémát.
A 2.5.2 újdonságai
Az OpenXR támogatásának hozzáadása
Hozzá lett adva a Unity OpenXR előzetes verziójának és a Microsoft Mixed Reality OpenXR-csomagjának kezdeti támogatása. További információért tekintse meg az MRTK/XRSDK első lépéseket ismertető oldalát, a Unity fórumbejegyzését vagy a Microsoft dokumentációját .
Fontos
Az OpenXR a Unityben csak a Unity 2020.3-s és újabb verzióiban támogatott. Emellett csak az x64-, ARM- és ARM64-buildeket támogatja.
Határvizualizációs hibák kijavítva
A határvizualizációk, például a padló vagy a falak, mostantól megfelelően lesznek konfigurálva és láthatók futásidőben a határprofilnak megfelelően.
MSBuild Unity-támogatáshoz
Az MSBuild for Unity támogatása a 2.5.2-es kiadástól el lett távolítva a Unity új csomag útmutatójának megfelelően.
A 2.5.1 újdonságai
A csomagfüggőség hibái ki lett javítva
Ez a kiadás kijavítja a nem megfelelő csomagközi fájlfüggőségeket (például: a Standard assetsben lévő fájlok már nem hivatkoznak helytelenül a Foundation fájljaira). A 2.5.1-es verzió explicit függőséget is hozzáad a Text Mesh Pro-ra.
Standard Assets csomagárnyékolók az Assets/MRTK/Shaders szolgáltatásba másolva
Ha a Standard Assets csomag upm-en keresztül van telepítve, a rendszer az árnyékolókat az Assets/MRTK/Shaders mappába másolja, hogy azok többé ne legyenek módosíthatók. Ez megoldja az univerzális renderelési folyamathoz (URP) frissített árnyékolók problémáját, amely visszaállítja az örökölt viselkedést a projekt következő betöltésekor.
Rögzített teleportkurzor a kézhez ragasztva
Ez a kiadás kijavít egy hibát , amely miatt a teleport célkurzora a kézi vizualizációkhoz ragaszkodhat.
A 2.5.0 újdonságai
A Unity Package Manager (UPM) támogatása
A Mixed Reality eszközkészlet mostantól a Unity Csomagkezelővel kezelhető.
Megjegyzés
Az MRTK UPM-csomagok importálásához néhány manuális lépés szükséges. További információért tekintse át Mixed Reality Eszközkészletet és a Unity Package Managert.
Az Oculus Quest XR SDK támogatása
Az MRTK mostantól támogatja az Oculus Quest headsetek és vezérlők natív XR SDK-folyamat használatával történő futtatását. A kézkövetés az Oculus Integration Unity csomaggal is támogatott , köszönhetően Eric Provencher MRTK-Questen végzett munkájának!
Az eszköz az Oculus Questben az új folyamat használatával történő üzembe helyezésével kapcsolatos utasításokért tekintse meg az Oculus Quest beállítási útmutatóját.
Objektumgyűjtemény görgetése
Az MRTK UX összetevőt egy kísérleti funkcióról frissítettük, és nagyobb szabadságot biztosít a különböző méretű 3D-tartalmak elrendezéséhez, és további támogatást nyújt az olyan objektumokhoz, amelyekhez nincs csatolva ütköző. A tartalommaszkolás letiltásának új lehetősége is hozzá lett adva, ami megkönnyíti a prototípus-készítést.
További információt az Objektumgyűjtemény görgetése című témakörben talál.
A teleportmutató animációinak, kezelésének és hangjavításai
A teleportmutató mostantól továbbfejlesztett animációkat és hangvisszajelzéseket is kapott. Továbbfejlesztettük a teleportmutató kezelését is, hogy zökkenőmentesebben működjön, amikor a közeli felületekre mutatnak, és távolabbi felületekre váltanak.
Bemeneti szimulációs hasznos tanácsok
A HandInteractionExamples jelenet mostantól konfigurálható parancsikont biztosít a bemeneti szimuláció súgóoldalának megjelenítéséhez
Bemenetszimulációs szem tekintete egérrel
A felhasználók mostantól az Egérrel szimulálhatják a szemkövetést. Tekintse meg a Eye Simulation Mode
mezőt a bemeneti szimulációs profilban, és állítsa egérre. Ez lecseréli az előző Simulate Eye Position
mezőt.
Bemenetszimulációs mozgásvezérlő a szerkesztő lejátszási módban
A felhasználók mostantól ugyanúgy szimulálhatják a mozgásvezérlőt, mint a szerkesztői játékmódban. Az eseményindító, a megragadás és a menügombok jelenleg támogatottak.
Kúpos fogópont
A fogómutatók mostantól úgy konfigurálhatók, hogy a közeli objektumok lekérdezéséhez a fogópontról származó kúpot használjon, nem pedig gömböt. Ez jobban hasonlít az alapértelmezett HoloLens 2 felület viselkedésére, amely egy kúp használatával lekérdezi a közeli objektumokat. A DefaultHoloLens2InputSystemProfile is módosult az új ConicalGrabPointer
használatához.
TestUtilities csomag
Most már létezik egy csomag (Microsoft.MixedReality.Toolkit.Unity.TestUtilities.2.5.0.unitypackage), amely tartalmazza azt a PlayMode és TestMode tesztinfrastruktúrát, amelyet az MRTK a végpontok közötti tesztek létrehozásához használ. Ez az infrastruktúra rendkívül hasznos volt magának az MRTK-csapatnak, és izgatottan várjuk, hogy a fogyasztók ezzel a tesztlefedettséggel bővítsék saját projektjeiket.
Az alábbi kód bemutatja, hogyan hozhat létre tesztkézbesítést, hogyan jelenítheti meg egy adott helyen, mozgathatja, majd csippentheti és nyithatja meg.
TestHand leftHand = new TestHand(Handedness.Left);
yield return leftHand.Show(new Vector3(-0.1f, -0.1f, 0.5f));
yield return leftHand.SetGesture(ArticulatedHandPose.GestureId.Pinch);
yield return leftHand.Move(new Vector3(0.2f, 0.2f, 0));
yield return leftHand.SetGesture(ArticulatedHandPose.GestureId.Open);
A tesztnek a TestUtilities használatával történő megírásával kapcsolatos utasításokért tekintse meg ezt a szakaszt a tesztek írásáról.
Az infrastruktúrát használó meglévő tesztek példáiért lásd az MRTK PlayModeTests (Az MRTK PlayModeTests) című szakaszát.
A Leap Motion 4.5.1 Unity-modulok támogatása
A Leap Motion Unity-modulok 4.5.1-es verziójának támogatása hozzáadva, és a 4.4.0-s eszközök támogatása el lett távolítva. A Leap Motion Unity modulok jelenleg támogatott verziói a 4.5.0 és a 4.5.1.
További lépés a Leap Motion kezdeti integrációjához: How to Configure the Leap Motion Hand Tracking in MRTK (A Leap Motion Hand Tracking konfigurálása az MRTK-ban ).
Spatial Awareness Mesh Observer jobban kezeli az anyagok testreszabását
Ezzel a kiadással a Windows Mixed Reality Spatial Mesh Observer
és az összetevők javították a Generic XR SDK Spatial Mesh Observer
vizuális anyagkezelést. Az anyagok akkor maradnak meg, ha a megfigyelő frissített egy hálót, ahol korábban visszaállították őket a profilban konfigurált alapértelmezett VisibleMaterial értékre.
Ez lehetővé teszi, hogy a fejlesztők módosítják a háló anyagát, és ne írja felül váratlanul a módosításokat.
A MixedRealityToolkit.Generated mappában létrehozott Link.xml
A Unity Package Manger MRTK bevezetésével az MRTK most egy link.xml
fájlt ír a Assets/MixedRealityToolkit.Generated
mappába, ha nincs jelen. Javasoljuk, hogy adja hozzá ezt a fájlt (és link.xml.meta
) a verziókövetéshez. Link.xml a Unity linker felügyelt kódfosztó funkciójának befolyásolására szolgál.
Az MRTK link.xml fájllal kapcsolatos további információkért tekintse meg az MRTK és a felügyelt kód sztriptízeléséről szóló cikket.
Unity 2019.3+: Az MRTK konfigurációs párbeszédpanelje már nem kísérli meg engedélyezni az örökölt XR-támogatást
A Unity XR platformjának használatakor fellépő esetleges ütközések elkerülése érdekében az örökölt XR-támogatás engedélyezésének lehetősége el lett távolítva az MRTK konfigurációs párbeszédpaneléről. Ha szükséges, az örökölt XR-támogatás engedélyezhető a Unity 2019-ben aProject Settings>Player>XR Settings>Virtual Reality supportedhasználatával>.
Az InitializeOnLoad többletterhelésének csökkentése
Dolgozunk azon, hogy csökkentsük az InitializeOnLoad kezelőkben futó munka mennyiségét, ami a belső hurok fejlesztési sebességének javulásához vezethet. Az InitializeOnLoad kezelők minden alkalommal futnak, amikor egy szkriptet lefordítanak a lejátszási módba lépés előtt, valamint a szerkesztő indításakor is. Ezek a kezelők mostantól sokkal kevesebb esetben futnak, ami a Unity válaszképességének általános javulását eredményezi.
Bizonyos esetekben kompromisszumra volt szükség:
- A további integrációs lépésről a Leap Motion Hand Tracking Configuration (Ugrás mozgáskövetési konfigurációja ) című témakörben olvashat.
- Az ARFoundation-t használó felhasználók számára most egy további manuális lépés is elérhető az első lépésekben. Az új lépésekért lásd: ARFoundation .
- Azok számára, akik holografikus remotinget használnak az örökölt XR-folyamattal a HoloLens 2, most egy manuális lépést kell elvégezni.
A kötöttség-vezérlés ki van értékelve
A korlátok vezérlése ki van vonva a kísérleti folyamatból, és számos új funkcióval és rengeteg hibajavítással rendelkezik. Íme a frissítés legfontosabb elemeinek listája:
- a tulajdonságok konfigurációkra vannak felosztva, ami megkönnyíti a korlátok vezérlésének beállítását
- a konfigurációk szkriptelhető objektumokon keresztül oszthatók meg
- minden tulajdonság/szkriptelhető tulajdonság konfigurálható futtatókörnyezetben
- A bounds vezérlőfólió többé nem lesz újra létrehozva a tulajdonságmódosítások esetén
- fordítási kezelők támogatása
- teljes kényszertámogatás a kényszerkezelőn keresztül
- elastics rendszerintegráció (kísérleti)
A régi határolókeret elavult, és a határolókeretet használó meglévő játékobjektumok frissíthetők a migrálási eszközzel vagy a határolókeret-felügyelővel.
Kényszerkezelő összetevő
A kényszereket most már használhatja a korlátvezérlő és az objektummanipulátor is az új kényszerkezelő összetevőn keresztül. Mindkét összetevő alapértelmezés szerint létrehoz egy kényszerkezelőt, és automatikusan feldolgoz minden csatolt kényszert.
Az automatikus viselkedési kényszerkezelő emellett manuális módot is biztosít, amellyel a felhasználók eldönthetik, hogy melyik kényszert kell feldolgozni. Emiatt a kényszerek tulajdonságfelügyelőben való megjelenítésének módja kissé megváltozott.
Az összetevőre alkalmazott kényszerek mostantól listaként jelennek meg a kényszerkezelő összetevőben, míg a kényszerkezelőt használó összetevő (vagy a korlátvezérlő vagy az objektummanipulátor) most a kiválasztott kényszerkezelőt és módot (automatikus vagy manuális) jeleníti meg. További információkért olvassa el a dokumentációnk kényszerkezelő szakaszát.
HoloLens 2 gomb anyagfrissítése
Frissítettük HoloLens 2 gomb elülső ketrecének anyagát, hogy eltávolítsa a fekete színt az MRC-ben.
Leírás panel frissítése, mozgatható példajelenet
Frissített leírás panel. (SceneDescriptionPanelRev.prefab) Az új kialakítás egy megragadható felső sávot biztosít, amely lehetővé teszi a felhasználó számára a teljes jelenet beállítását/áthelyezését.
Térbeli hálós vizualizáció – impulzus a légcsapon
Frissített pulzusárnyékoló példa a térbeli hálóra, hogy megfeleljen HoloLens 2 felületének viselkedésének.
Rugalmas rendszer (kísérleti)
Az MRTK most egy rugalmas szimulációs rendszerrel rendelkezik, amely számos bővíthető és rugalmas alosztályt tartalmaz, amelyek 4 dimenziós kvaternion rugókhoz, 3 dimenziós kötetrugókhoz és egyszerű lineáris rugórendszerekhez kínálnak kötéseket.
Az elastics managert támogató alábbi MRTK-összetevők jelenleg rugalmas funkciókat használhatnak:
Joystick (kísérleti)
Példa a joystick felületére, amely képes vezérelni egy nagy célobjektumot.
Színválasztó (kísérleti)
Kísérleti vezérlő, amely megkönnyíti az anyagszínek módosítását bármely objektumon futásidőben.
Kompatibilitástörő változások
A szerelvénydefiníciós fájlok módosításai
Néhány asmdef-fájl módosult, és jelenleg csak a Unity 2018.4.13f1-et vagy újabb verziót támogatja. Fordítási hibák jelennek meg a Unity korábbi verzióiban az MRTK 2.5-re való frissítéskor. Ezt úgy lehet kijavítani, hogy Assets\MRTK\Providers\XRSDK\Microsoft.MixedReality.Toolkit.Providers.XRSDK.asmdef
a projektablakba lép, és eltávolítja a hiányzó referenciát az ellenőrben. Ismételje meg ezeket a lépéseket a és Assets\MRTK\Providers\WindowsMixedReality\XRSDK\Microsoft.MixedReality.Toolkit.Providers.XRSDK.WMR.asmdef
a használatávalAssets\MRTK\Providers\Oculus\XRSDK\Microsoft.MixedReality.Toolkit.Providers.XRSDK.Oculus.asmdef
. Vegye figyelembe, hogy a Unity 2019-re való frissítéskor vissza kell állítania a módosításokat úgy, hogy a három asmdef-fájlt eredeti (azaz nem módosított) fájlokra cseréli.
IMixedRealityPointerMediator
Ez a felület új függvényre lett frissítve:
void SetPointerPreferences(IPointerPreferences pointerPreferences);
Ha olyan egyéni mutató-közvetítővel rendelkezik, amely nem a DefaultPointerMediator alosztályt használja, implementálnia kell ezt az új függvényt. A probléma további hátterét a probléma hozzáadásának okait tekintve tekinti meg. Ez azért lett hozzáadva, hogy a mutató preferenciái explicit módon legyenek átadva a közvetítőnek ahelyett, hogy implicit módon történnek az IPointerPreferencest használó konstruktor jelenléte alapján.
Rest / Device Portal API
A UseSSL
statikus tulajdonság át lett helyezve a következőre Rest
DevicePortal
: .
Ha ezt korábban tette...
Rest.UseSSL = true
Tegye ezt most...
DevicePortal.UseSSL = true
Link.xml
Ha egy alkalmazás korábban az MRTK NuGet-disztribúcióját használta, a link.xml
fájl el lett távolítva az Foundation csomagból. A kódmegőrzési szabályok visszaállításához, ha egyszer megnyitja a projektet a Unityben, létrehoz egy alapértelmezett link.xml
fájlt a fájlban Assets/MixedRealityToolkit.Generated
. Javasoljuk, hogy ezt a fájlt (és link.xml.meta
) hozzáadja a forrásvezérlőhöz.
Kényszermódosítások átalakítása
A TargetTransform tulajdonság elavultként lett megjelölve, mivel a kényszerrendszer nem használta. A kényszerlogika az Inicializálás és az Alkalmaz metódusokba átadott átalakításon alapul. Az erre a tulajdonságra támaszkodó származtatott felhasználói kényszerek gyorsítótárazhatják a TargetTransformot a implementációjukban úgy, hogy a kényszerösszetevő átalakításának tárolásával ugyanazt a viselkedést érik el.
A tárolt kezdeti világ póz worldPoseOnManipulationStart
adattípusa MixedRealityPose-ról MixedRealityTransformra módosult, amely tartalmazza a manipulált objektum helyi méretezési értékét. Ezzel a módosítással már nem szükséges külön gyorsítótárazni a kezdeti skálázási értékeket.
Új tulajdonság az IMixedRealityDictationSystemben
Új tulajdonság AudioClip
lett hozzáadva az IMixedRealityDictationSystem felülethez. A AudioClip
tulajdonság lehetővé teszi az aktuális diktálási munkamenethez társított hangklip elérését. A felhasználóknak implementálniuk kell a tulajdonságot a szkriptjeikben, és implementálniuk kell a felületet.
A szolgáltatáshomlokzatok lefordulnak
A szolgáltatások homlokzatai a 2.5-ös verzióban le vannak tiltva. Ez a funkció eredetileg azért lett hozzáadva, hogy megkönnyítse az MRTK-profilok konfigurálását (az MRTK minden szolgáltatását jelképező hamis helyszíni GameObjects létrehozásával). Hosszú távon el szeretnénk kerülni a hamis játékon belüli objektumok létrehozását és szinkronban tartását (mivel az adatszinkronizálással és az "igazságforrással" kapcsolatos problémákat közismerten nehéz skálázni és helyrehozni).
A 2.5-ös verzióban a szolgáltatáshomlokzat-kezelők megmaradnak, hogy a projektfrissítés zökkenőmentes legyen – a projektben meglévő homlokzatokat a szolgáltatás homlokzatkezelője törli, hogy a 2.5-ben megnyitott jelenetek automatikusan javítva legyenek.
A szolgáltatáshomlokzat funkcióhoz társított többi kód egy későbbi kiadásban törlődik.
Mozgásvezérlő hozzáadása a bemeneti szimulációs szolgáltatáshoz
A mozgásvezérlő szimulációja mostantól szerkesztői lejátszási módban is elérhető a meglévő kézszimuláció mellett. A módosítás engedélyezéséhez számos aktuális függvény/mező/tulajdonság már elavultként van megjelölve, és MixedRealityInputSimulationProfile.cs
a legfontosabb módosításokat InputSimulationService.cs
kapja. A vonatkozó kód logikája és viselkedése nagyrészt változatlan marad, és az elavult függvények többsége stb. a "hand" kifejezésre való hivatkozásnak a "vezérlő" általánosabb kifejezésre való lecserélésével kapcsolatosak (pl. a-ról DefaultHandSimulationMode
a-ra DefaultControllerSimulationMode
). Az új nevek beolvasása mellett bizonyos új függvények visszatérési típusa is frissül, hogy megfeleljen a név/viselkedés változásának (például GetControllerDevice
az eredeti helyett az eredeti GetHandDevice
visszaadása BaseController
SimulatedHand
).
IInputSimulationService
most már új tulajdonságokkal rendelkezik MotionControllerDataLeft
, és MotionControllerDataRight
. MixedRealityInputSimulationProfile
mostantól új mezőket tartalmaz bizonyos mozgásvezérlő gombok billentyűzetleképezéséhez.
Ismert problémák
A CameraCache új kamerát hozhat létre a leállításkor
Bizonyos esetekben (például amikor a LeapMotion szolgáltatót használja a Unity Editorban), a CameraCache újra létrehozhatja a MainCamera-t a leállításkor. További információért tekintse meg ezt a problémát .
FileNotFoundException, ha példákat importál a Unity Package Managerrel
A projektútvonal hosszától függően a példák Unity Package Managerrel való importálása FileNotFoundException üzeneteket hozhat létre a Unity Konzolon. Ennek az az oka, hogy a "hiányzó" fájl elérési útja hosszabb, mint MAX_PATH (256 karakter). A probléma megoldásához rövidítse le a projektútvonal hosszát.
Nincs megadva térbeliizáló. Az alkalmazás nem támogatja a Spatial Soundot
"Nincs megadva térbeliizer" figyelmeztetés jelenik meg, ha nincs konfigurálva hang-térbeliizáló. Ez akkor fordulhat elő, ha nincs telepítve XR-csomag, mivel a Unity térbeliizereket tartalmaz ezekben a csomagokban.
A probléma megoldásához győződjön meg arról, hogy:
Ablak>A Package Manager egy vagy több XR-csomaggal rendelkezik
Mixed Reality Eszközkészlet>segédprogramok>Konfigurálja a Unity-projektet, és válasszon a Audio Spatializerhez
NullReferenceException: Az objektumhivatkozás nincs objektumpéldányra állítva (SceneTransitionService.Initialize)
Bizonyos esetekben a megnyitás EyeTrackingDemo-00-RootScene
NullReferenceException értéket okozhat a SceneTransitionService osztály Initialize metódusában.
Ezt a hibát a Jelenetáttűnési szolgáltatás konfigurációs profiljának leválasztása okozza. A probléma megoldásához kövesse az alábbi lépéseket:
- Navigáljon a
MixedRealityToolkit
hierarchia objektumához - Az Inspector ablakban válassza a
Extensions
- Ha nincs kibontva, bontsa ki a
Scene Transition Service
- Az érték beállítása MRTKExamplesHubSceneTransitionServiceProfile értékre
Configuration Profile
Oculus Quest
Jelenleg ismert probléma merült fel az Oculus XR beépülő modul és a különálló platformok célzása során. Frissítésekért tekintse meg az Oculus hibakövető/fórum/kiadási megjegyzéseit.
A hiba a következő 3 hibával van jelezve:
UnityUI és TextMeshPro
A TextMeshPro (1.5.0 vagy 2.1.1+) újabb verzióinak ismert problémája, hogy a legördülő listák alapértelmezett betűmérete és a félkövér betűköz megváltozott.
Ez a TextMeshPro egy korábbi verziójára való visszalépéssel megkerülhető. További részletekért tekintse meg a 8556-os problémát .