A Unity ajánlott beállításai
A Unity olyan alapértelmezett beállításokat biztosít, amelyek általában az összes platform esetében átlagosak. A Unity azonban bizonyos, a vegyes valóságra jellemző viselkedéseket kínál, amelyek a projektbeállításokon keresztül kapcsolhatók.
Performant environment set-up
Gyenge minőségű beállítások
Fontos, hogy a Unity minőségi beállításaitnagyon alacsonyra módosítsa, hogy az alkalmazás a megfelelő keretsebességgel fusson és megfelelően teljesítsen, különösen HoloLens-fejlesztés esetén. A modern headsetek fejlesztéséhez a VR-élményt biztosító asztali gép specifikációitól függően a legalacsonyabb minőségi paraméterek nélkül is el lehet érni a framerate-et.
A Unity 2019 LTS+-ban beállíthatja a projekt minőségi szintjét a Project Gépház> Quality szerkesztésével>, majd az Alapértelmezett beállítással, ha a lefelé mutató nyílra kattint a **Nagyon gyenge minőségű szintre.
Világítási beállítások
A Minőségi jelenet beállításaihoz hasonlóan fontos, hogy optimális világítási beállításokat állítson be a Mixed Reality-alkalmazáshoz. A Unityben a Realtime Global Lighting az, amely általában a legnagyobb hatással lesz a jelenetre. A globális megvilágítás kikapcsolásához lépjen a Window>Rendering>Lighting Gépház> Realtime Global Lighting elemre.
Van egy másik világítási beállítás, a Baked Global Lighting. Ez a beállítás látványos és látványos eredményeket biztosíthat a modern headseteken, de a HoloLens-fejlesztésre nem alkalmazható. A Sült globális megvilágítás csak statikus GameObjects-ekhez van kiszámítva, amelyek nem találhatók a HoloLens-jelenetekben egy ismeretlen és változó környezet természete miatt.
További információért olvassa el a Unity globális megvilágítását.
Feljegyzés
A Realtime Global Illumination jelenetenként van beállítva, így a fejlesztőknek a projekt minden Unity-jelenetéhez menteniük kell ezt a tulajdonságot.
Egybemenő instancing renderelési útvonal
A Mixed Reality-alkalmazásokban a jelenet kétszer jelenik meg: minden szemhez egyszer. A hagyományos 3D fejlesztéshez képest ez gyakorlatilag megduplázza a kiszámítandó munka mennyiségét. Fontos, hogy a Unityben válassza ki a leghatékonyabb megjelenítési útvonalat, hogy cpu- és GPU-időt takarítson meg. Az egybemenő példányos renderelés optimalizálja a Unity renderelési folyamatát vegyes valóságbeli alkalmazásokhoz; javasoljuk, hogy alapértelmezés szerint minden projektnél engedélyezze ezt a beállítást.
A funkció engedélyezése a Unity-projektben
- Nyissa meg az OpenXR Gépház (nyissa meg a Project Gépház> XR beépülő modulkezelő>OpenXR szerkesztését).>
- A Renderelési mód legördülő menüben válassza a Single Pass Instanced lehetőséget.
Ezzel a megjelenítési megközelítéssel további részletekért olvassa el a Unity alábbi cikkeit.
- Az AR- és VR-teljesítmény maximalizálása fejlett sztereó rendereléssel
- Egyszeri továbbítású instancing
Feljegyzés
A Single Pass Instanced Rendering egyik gyakori problémája akkor fordul elő, ha a fejlesztők már rendelkeznek olyan egyéni árnyékolókkal, amelyeket nem instancingra írtak. A funkció engedélyezése után a fejlesztők észrevehetik, hogy egyes GameObjects-elemek csak egy szemen belül jelennek meg. Ennek az az oka, hogy a társított egyéni árnyékolók nem rendelkeznek a megfelelő tulajdonságokkal az instancinghoz.
A mélységi puffer megosztásának engedélyezése
Annak érdekében, hogy jobb hologramstabilitást érjen el a felhasználó észlelése alapján, ajánlott engedélyezni a Mélységi puffermegosztás tulajdonságot a Unityben. Ennek bekapcsolásával a Unity megosztja az alkalmazás által készített mélységi térképet a Windows Mixed Reality platformmal. A platform ezután jobban optimalizálhatja a hologram stabilitását kifejezetten a jelenethez az alkalmazás által renderelt bármely adott kerethez.
A funkció engedélyezése a Unity-projektben
- Nyissa meg az OpenXR Gépház (nyissa meg a Project Gépház> XR beépülő modulkezelő>OpenXR szerkesztését).>
- Válassza a Mélység 16 bit lehetőséget a Mélység beküldési mód legördülő menüből.
A 16 bites mélységi pufferbeállítás különösen ajánlott a HoloLens fejlesztéséhez. Ha a 24 biteshez képest 16 biteset választ, az jelentősen csökkenti a sávszélességre vonatkozó követelményeket, mivel kevesebb adatot kell áthelyezni/feldolgozni. Igaz, az optimalizálás bizonyos költségekkel jár. Győződjön meg arról, hogy tisztában van az alábbi Fontos mezőkben említett következményekkel.
Annak érdekében, hogy a Windows Mixed Reality platform optimalizálja a hologram stabilitását, a mélységi pufferre támaszkodik, hogy pontos legyen, és megfeleljen a képernyőn megjelenő renderelt hologramoknak. Így ha a mélységi pufferek megosztása be van kapcsolva, a szín renderelésekor fontos, hogy a mélységet is renderelje. A Unityben a legtöbb átlátszatlan vagy TransparentCutout-anyag alapértelmezés szerint mélységet jelenít meg, de a transzparens és szöveges objektumok nem renderelik a mélységet, bár ez az árnyékolóktól és más tényezőktől függ.
Ha a Mixed Reality Toolkit Standard shaderrel jeleníti meg a mélységet transzparens objektumok esetében:
- Válassza ki az MRTK Standard árnyékolót használó átlátszó anyagot, és nyissa meg az Inspector szerkesztőablakot
- Válassza a Javítás most gombot a mélységi puffermegosztási figyelmeztetésben. Ez manuálisan is elvégezhető, ha a Renderelési módot egyénire állítja, majd a Módot Transzparens értékre állítja, végül pedig a Mélységi írás beállítást bekapcsolva
Fontos
A fejlesztőknek óvakodjanak a Z-harctól, amikor megváltoztatják ezeket az értékeket a kamera közeli/távoli sík beállításaival együtt. A Z-Fighting akkor fordul elő, amikor két gameobject ugyanabba a képpontba próbál renderelni, és a mélységi puffer (azaz a z mélység) hűségének korlátozása miatt a Unity nem tudja felismerni, hogy melyik objektum van a másik előtt. A fejlesztők két játékobjektum között villódzó villódzást fognak megfigyelni, miközben ugyanazért a z-mélységért harcolnak. Ez 24 bites mélységi formátumra váltással oldható meg, mivel minden objektumhoz nagyobb értéktartomány lesz kiszámítva a kamerából származó z-mélység alapján.
Javasoljuk azonban, különösen a HoloLens fejlesztése esetén, hogy a kamera közeli és távoli síkjait kisebb tartományra módosítsa, és megtartsa a 16 bites mélységi formátumot. A z mélység nem lineárisan van leképezve a közeli és távoli kamerasíkok mentén található értékek tartományára. Ez módosítható a jelenet fő Kamera kiválasztásával, és az Inspector alatt módosítsa a Közeli és távol vágósík értékeit a tartományuk csökkentése érdekében (például 1000 m-ről 100 m-re vagy más x értékre stb.)
Fontos
A Unity nem hoz létre rajzsablon-puffert 16 bites mélységi formátum használatakor. Így egyes Unity felhasználói felületi effektusok és más rajzsablonhoz szükséges effektusok csak akkor működnek, ha 24 bites mélységi formátum van kiválasztva, amely létrehoz egy 8 bites rajzsablonpuffert.
Az IL2CPP létrehozása
A Unity elavulttá tette a .NET-szkriptek háttérrendszerének támogatását, ezért azt javasolja a fejlesztőknek, hogy az IL2CPP-t használják a UWP Visual Studio-buildjeikhez. Bár ez számos előnnyel jár, az IL2CPP-hez készült Unity visual Studio-megoldás létrehozása lassabb lehet, mint a régi .NET-módszer. Ezért erősen ajánlott követni az IL2CPP készítésének ajánlott eljárásait, hogy időt takarítson meg a fejlesztési iterációban.
- Használja ki a növekményes építést úgy, hogy a projektet minden alkalommal ugyanarra a könyvtárra építi, és ott használja újra az előre elkészített fájlokat
- Kártevőirtó szoftvervizsgálatok letiltása a projekthez és a buildmappákhoz
- A Vírus és fenyegetésvédelem megnyitása a Windows 10 beállításalkalmazásában
- Válassza a Gépház kezelése lehetőséget a Vírus > veszélyforrások elleni védelem beállításai alatt
- A Kizárások szakaszban válassza a Kizárások hozzáadása vagy eltávolítása lehetőséget
- Válassza a Kizárás hozzáadása lehetőséget, és válassza ki a Unity-projektkódot és a kimeneteket tartalmazó mappát
- SSD használata az épülethez
További információért olvassa el az IL2CPP buildelési idejének optimalizálását.
Feljegyzés
Emellett hasznos lehet gyorsítótár-kiszolgálót beállítani, különösen olyan Unity-projektek esetében, amelyek nagy mennyiségű objektummal rendelkeznek (a szkriptfájlok kivételével), vagy folyamatosan módosítják a jeleneteket/objektumokat. Projekt megnyitásakor a Unity a megfelelő objektumokat belső gyorsítótárformátumban tárolja a fejlesztői gépen. Az elemeket újra kell importálni, és módosításkor újra kell feldolgozni. Ez a folyamat egyszer elvégezhető, és menthető egy Gyorsítótár-kiszolgálón, és így megosztva más fejlesztőkkel, hogy időt takarítson meg, ahelyett, hogy minden fejlesztő helyben dolgozza fel az új módosítások újraimportálását.
Közzétételi tulajdonságok
Holografikus kezdőképernyő
A HoloLens mobilosztályú CPU-val és GPU-val rendelkezik, ami azt jelenti, hogy az alkalmazások betöltése egy kicsit tovább tarthat. Amíg az alkalmazás be van töltve, a felhasználók csak fekete színt fognak látni, így felmerülhet bennük a kérdés, hogy mi történik. Ha meg szeretné nyugtázni őket a betöltés során, hozzáadhat egy holografikus kezdőképernyőt.
A holografikus kezdőképernyő váltása:
- Ugrás a Project Gépház> Player lap szerkesztésére>
- Válassza a Windows Áruház lapfület, és nyissa meg a Splash Image szakaszt
- Alkalmazza a képet a Windows Holographic Holographic > Splash Image tulajdonság alatt.
- A Unity fröccsenő képernyő megjelenítése beállítás összesítése engedélyezi vagy letiltja a Unity márkájú kezdőképernyőt. Ha nem rendelkezik Unity Pro-licenccel, a Unity márkájú kezdőképernyő mindig megjelenik.
- Holografikus fröccsenő kép alkalmazása esetén mindig megjelenik, hogy engedélyezve vagy letiltva van-e a Unity fröccsenő képernyő megjelenítése jelölőnégyzet. Egyéni holografikus kezdőkép megadása csak Unity Pro-licenccel rendelkező fejlesztők számára érhető el.
A Unity kezdőképernyőjének megjelenítése | Holografikus kezdőkép | Működés |
---|---|---|
Be | Egyik sem | Az alapértelmezett Unity kezdőképernyő megjelenítése 5 másodpercig vagy az alkalmazás betöltéséig, attól függően, hogy melyik hosszabb. |
Be | Egyéni | Az egyéni kezdőképernyő megjelenítése 5 másodpercig vagy az alkalmazás betöltéséig, attól függően, hogy melyik hosszabb. |
Kikapcsolva | Egyik sem | Áttetsző fekete (semmi) megjelenítése az alkalmazás betöltéséig. |
Kikapcsolva | Egyéni | Az egyéni kezdőképernyő megjelenítése 5 másodpercig vagy az alkalmazás betöltéséig, attól függően, hogy melyik hosszabb. |
További információért olvassa el a Unity kezdőképernyős dokumentációját .
Veszteség nyomon követése
A vegyes valóság headset attól függ, hogy a környezet látható-e körülötte, hogy világzárolt koordináta-rendszereket hozzon létre, amelyek lehetővé teszik a hologramok pozíciójának megőrzését. Ha a headset nem tudja megtalálni magát a világon, a headset azt mondják, hogy elvesztette a nyomon követés. Ezekben az esetekben a világzárt koordinátarendszerektől , például a térbeli szakaszoktól, a térbeli horgonyoktól és a térbeli leképezéstől függő funkciók nem működnek.
Ha a nyomon követés megszakad, a Unity alapértelmezett viselkedése az, hogy leállítja a hologramok renderelését, szünetelteti a játék ciklusát, és megjelenít egy elveszett nyomkövetési értesítést, amely kényelmesen követi a felhasználók tekintetét. Az egyéni értesítések nyomkövetési veszteség kép formájában is megadhatóak. Az olyan alkalmazások esetében, amelyek a teljes felhasználói élmény nyomon követésétől függenek, elegendő, ha a Unity ezt teljes egészében kezeli, amíg vissza nem nyeri a nyomkövetést. A fejlesztők a veszteség nyomon követése során megjelenítendő egyéni rendszerképet adhatnak meg.
Az elveszett kép nyomon követésének testreszabása:
- Ugrás a Project Gépház> Player lap szerkesztésére>
- Válassza ki a Windows Áruház lapon, és nyissa meg a Splash Image szakaszt
- Alkalmazza a rendszerképet a Windows Holographic > Tracking Loss Image tulajdonság alatt.
Automatikus szüneteltetés letiltása
Előfordulhat, hogy egyes alkalmazások nem igényelnek nyomon követést (például a csak tájolású alkalmazásokat , például a 360 fokos videómegjelenítőket), vagy előfordulhat, hogy a nyomon követés elveszése közben folyamatos feldolgozást kell folytatniuk. Letilthatja a nyomkövetési viselkedés alapértelmezett elvesztését, de ön felelős az objektumok elrejtéséért/letiltásáért, amelyek nem jelennek meg megfelelően a nyomkövetési veszteséges forgatókönyvekben. A legtöbb esetben az egyetlen olyan tartalom, amelyet ebben az esetben javasolt megjeleníteni, a fő kamera köré középre zárt, testre zárt tartalom.
Az automatikus szüneteltetési viselkedés letiltása:
- Ugrás a Project Gépház> Player szerkesztése>lapra
- Válassza a Windows Áruház lapfület, és nyissa meg a Splash Image szakaszt
- Módosítsa a Windows Holographic > on Tracking Loss Pause és Show Image jelölőnégyzetet.
Veszteségesemények nyomon követése
Ha egyéni viselkedést szeretne meghatározni a nyomon követés elvesztésekor, kezelje a globális nyomkövetési veszteségeseményeket.
Képességek
Ahhoz, hogy egy alkalmazás kihasználhassa bizonyos funkciók előnyeit, deklarálnia kell a megfelelő képességeket a jegyzékben. A jegyzék-deklarációk a Unityben is végrehajthatók, így minden jövőbeli projektexportálás részét képezik.
A képességek a Következővel engedélyezhetők a Mixed Reality-alkalmazásokhoz:
- Ugrás a Project Gépház> Player lap szerkesztésére>
- Válassza a Windows Áruház lapfület, nyissa meg a Közzététel Gépház szakaszt, és keresse meg a Képességek listát
A holografikus alkalmazásokhoz gyakran használt API-k engedélyezésének lehetőségei a következők:
Funkció | Képességeket igénylő API-k |
---|---|
SpatialPerception | SurfaceObserver |
Webkamera | PhotoCapture és VideoCapture |
PicturesLibrary / VideosLibrary | PhotoCapture vagy VideoCapture (a rögzített tartalom tárolásakor) |
Mikrofon | VideoCapture (hangrögzítéskor), DictationRecognizer, GrammarRecognizer és KeywordRecognizer |
InternetClient | DictationRecognizer (és a Unity Profiler használata) |