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

Alacsony minőségű beállítások

Fontos, hogy módosítsa a Unity minőségi beállításaitNagyon alacsony értékre, hogy az alkalmazás a megfelelő keretsebességgel fusson és megfelelően teljesítsen, különösen a HoloLens-fejlesztés esetében. A modern mikrofonos fejhallgatók 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érhető a keretsebesség.

A Unity 2019 LTS+-ban beállíthatja a projekt minőségi szintjét aProjektbeállítások>minőségénekszerkesztése> és az Alapértelmezett beállítás beállításával, ha a lefelé mutató nyílra kattint a **Nagyon alacsony 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 megvilágítási beállításokat állítson be Mixed Reality alkalmazáshoz. A Unityben a Realtime Global Lighting beállítás, amely általában a legnagyobb hatással lesz a jelenetre, a Realtime Global Lighting. A globális megvilágítás kikapcsolásához lépjen a Windows>Rendering>Lighting SettingsRealtime Global Lighting (Valós idejű globális megvilágítás) területre>.

Van egy másik világítási beállítás, a Sült globális megvilágítás. Ez a beállítás látványos és látványos eredményeket biztosíthat a modern mikrofonos fejhallgatókon, de a HoloLens-fejlesztéshez nem alkalmazható. A Sült globális megvilágítás csak statikus GameObjects-ekre van kiszámítva, amelyek nem találhatók meg a HoloLens-jelenetekben egy ismeretlen és változó környezet természete miatt.

További információért olvassa el a Global Illumination from Unity (Globális megvilágítás a Unityből ) című cikket.

Megjegyzés

A Realtime Global Illuminationjelenetenként van beállítva, így a fejlesztőknek menteniük kell ezt a tulajdonságot a projekt minden Unity-jelenetéhez.

Egybemenős instancing renderelési útvonal

Mixed Reality alkalmazásokban a jelenet kétszer jelenik meg: minden szemnél egyszer. A hagyományos 3D-s fejlesztéshez képest ez gyakorlatilag megduplázza a kiszámolandó munka mennyiségét. Fontos, hogy a Unityben válassza ki a leghatékonyabb megjelenítési útvonalat, hogy időt takarítson meg a CPU-n és a GPU-n. Az egybemenő példányos renderelés optimalizálja a Unity renderelési folyamatot a 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

  1. Nyissa meg az OpenXR-beállításokat (nyissa meg aProjektbeállítások>szerkesztése>XR Beépülő modul kezelése>OpenXR című szakaszt).
  2. A Renderelési mód legördülő menüben válassza a Single Pass Instanced (Egyátadásos példány) lehetőséget.

A renderelési megközelítéssel kapcsolatos további részletekért olvassa el a Unity következő cikkeit.

Megjegyzés

A Single Pass Instanced Rendering egyik gyakori problémája akkor fordul elő, ha a fejlesztők már rendelkeznek meglévő 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 probléma megoldásához lásd: Single Pass Stereo Rendering for HoloLens for Unity

Mélységi puffermegosztás 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 adott kerethez.

A funkció engedélyezése a Unity-projektben

  1. Nyissa meg az OpenXR-beállításokat (nyissa meg aProjektbeállítások>szerkesztése>XR Beépülő modul kezelése>OpenXR című szakaszt).
  2. A Mélységküldési mód legördülő menüben válassza a Mélység 16 bites lehetőséget.

A 16 bites mélységi pufferbeállítás különösen ajánlott a HoloLens-fejlesztéshez. 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. Ez azt jelenti, hogy 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ített hologramoknak. Így a mélységi pufferek megosztásának bekapcsolásával fontos, hogy a szín renderelése a mélységet is renderelje. A Unityben a legtöbb átlátszatlan vagy TransparentCutout anyag alapértelmezés szerint rendereli a mélységet, de a transzparens és a 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 az áttetsző objektumok mélységét:

  1. Válassza ki az MRTK Standard árnyékolót használó áttetsző anyagot, és nyissa meg az Inspector szerkesztőablakot
  2. Válassza a Javítás most gombot a mélységi puffermegosztási figyelmeztetésben. Ezt manuálisan is végrehajthatja, ha a Renderelési módotEgyéni értékre állítja; majd állítsa a Mode (Mód) értéket Transzparens értékre, végül pedig a Mélységi írás lehetőséget Be értékre.

Fontos

A fejlesztőknek óvakodjanak a Z-harctól, amikor módosítják ezeket az értékeket a kamera közel/távoli síkbeállításaival együtt. A Z-Fighting akkor fordul elő, ha két gameobject ugyanazon a képponton próbál renderelni, és a mélységi puffer (azaz a mélység) megbízhatóságának korlátozásai 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égi értékért harcolnak . Ezt a 24 bites mélységi formátumra való váltással oldhatja meg, mivel minden objektum nagyobb értéktartományt kap, amelyre a kamera z-mélysége alapján számíthat.

Javasoljuk azonban, különösen a HoloLens-fejlesztés esetében, hogy a kamera közeli és távoli síkjait kisebb tartományra módosítsa, és tartsa meg 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 lévő értékek tartományára. Ezt úgy módosíthatja, hogy kiválasztja a fő kamerát a jelenetben, majd az Inspector területen a Közel & távoli vágósík értékeit úgy módosítja, hogy csökkentse a tartományukat (például 1000m-ről 100m-re vagy más x értékre stb.)

Fontos

A Unity 16 bites mélységi formátum használatakor nem hoz létre rajzsablonpuffert. Í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 8 bites rajzsablonpuffert hoz létre.

Az IL2CPP-hez készült épület

A Unity elavulttá tette a .NET-szkriptelési háttérrendszer támogatását, ezért azt javasolja a fejlesztőknek, hogy használják az IL2CPP-t az 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 az IL2CPP létrehozásához ajánlott eljárásokat követni, hogy időt takarítson meg a fejlesztési iterációban.

  1. 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
  2. Kártevőirtó szoftvervizsgálatok letiltása a projekthez & buildmappákhoz
    • Nyissa meg a Vírus & veszélyforrások elleni védelmet a Windows 10 beállításalkalmazásban
    • Válassza a Beállítások kezelése lehetőséget a Vírus & veszélyforrások elleni védelem beállításai területen
    • Válassza a Kizárások szakasz Kizárások hozzáadása vagy eltávolításaelemét
    • Válassza a Kizárás hozzáadása lehetőséget, és válassza ki a Unity-projektkódot és a buildkimeneteket tartalmazó mappát
  3. SSD használata az épülethez

További információt a Build Times for IL2CPP optimalizálása című témakörben talál.

Megjegyzés

Emellett előnyös lehet gyorsítótár-kiszolgálót beállítani, különösen nagy mennyiségű objektummal (a szkriptfájlok kivételével) rendelkező Unity-projektekhez, vagy a jelenetek/objektumok folyamatos módosításához. Projekt megnyitásakor a Unity belső gyorsítótár formátumban tárolja a jogosult objektumokat a fejlesztői gépen. Az elemeket újra kell importálni, és módosításkor újra fel kell dolgozni. Ez a folyamat egyszer elvégezhető, és menthető egy gyorsítótár-kiszolgálón, és következésképpen megosztható 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 hosszabb időt vehet igénybe. Amíg az alkalmazás be van töltve, a felhasználók csak feketét látnak, í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:

  1. Lépjen aProjektbeállítások lejátszólap>szerkesztése> lapra
  2. Válassza a Windows Áruház lapot, és nyissa meg a Kezdőkép szakaszt
  3. Alkalmazza a képet a Windows Holographic Holographic > Splash Image tulajdonság alatt.
    • Ha bekapcsolja a Unity kezdőképernyő megjelenítése beállítást, az 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 kezdőkép alkalmazásakor mindig megjelenik, hogy a Unity kezdőképernyőjének megjelenítése jelölőnégyzet engedélyezve van-e vagy le van tiltva. Egyéni holografikus kezdőkép megadása csak Unity Pro-licenccel rendelkező fejlesztők számára érhető el.
Unity kezdőképernyő megjelenítése Holografikus kezdőkép Működés
Be None Az alapértelmezett Unity kezdőképernyő megjelenítése 5 másodpercig vagy az alkalmazás betöltéséig (amelyik hosszabb).
Be Egyéni Az Egyéni kezdőképernyő megjelenítése 5 másodpercig vagy az alkalmazás betöltéséig (amelyik hosszabb).
Ki None Áttetsző fekete (semmi) megjelenítése az alkalmazás betöltéséig.
Ki Egyéni Az Egyéni kezdőképernyő megjelenítése 5 másodpercig vagy az alkalmazás betöltéséig (amelyik hosszabb).

További információért olvassa el a Unity kezdőképernyőjének dokumentációját .

Veszteség nyomon követése

A vegyes valóságú headsetek attól függenek, hogy a környezete körül látja-e a világzárolt koordinátarendszereket, amelyek lehetővé teszik a hologramok pozíciójának megőrzését. Ha a headset nem találja magát a világon, a headsetről azt mondják, hogy a nyomkövetés megszakadt. Ezekben az esetekben a világ által zárolt 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 hurkot, és megjelenít egy elveszett nyomkövetési értesítést, amely kényelmesen követi a felhasználók tekintetét. Egyéni értesítéseket követési veszteségkép formájában is megadhat. 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 megadhatnak egy egyéni rendszerképet, amely a veszteség nyomon követése során jelenik meg.

Az elveszett nyomkövetési rendszerkép testreszabása:

  1. Lépjen aProjektbeállítások lejátszólap>szerkesztése> lapra
  2. Válassza a Lehetőséget a Windows Áruház lapon, és nyissa meg a Kezdőkép szakaszt
  3. Alkalmazza a képet a Windows Holographic > Tracking Loss Image tulajdonság alatt.

Az automatikus szüneteltetés letiltása

Előfordulhat, hogy egyes alkalmazások nem igényelnek nyomon követést (például csak tájolású alkalmazások , például 360 fokos videómegjelenítők), vagy a nyomon követés elveszése esetén is zavartalanul kell folytatniuk a feldolgozást. Lemondhatja az alapértelmezett nyomkövetési viselkedésvesztést, de ön felelős az objektumok elrejtéséért/letiltásáért, amelyek nem jelennek meg megfelelően a nyomkövetési veszteség forgatókönyvében. A legtöbb esetben az egyetlen olyan tartalom, amelyet javasolt renderelni, az a fő kamera körül középre zárt, testbe zárt tartalom.

Az automatikus szüneteltetési viselkedés letiltása:

  1. Nyissa meg aProjektbeállítások>lejátszójának szerkesztése> lapot
  2. Válassza a Windows Áruház lapot, és nyissa meg a Kezdőkép szakaszt
  3. Módosítsa a Windows Holographic On Tracking Loss Pause and Show Image (Windows Holographic > On Tracking Loss Pause and 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 nyomon kö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ékfájljában. 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 az Mixed Reality-alkalmazásokhoz az alábbiakkal engedélyezhetők:

  1. Lépjen aProjektbeállítások lejátszólap>szerkesztése> lapra
  2. Válassza a Windows Áruház lapot, nyissa meg a Közzétételi beállítások szakaszt , és keresse meg a Képességek listát

A holografikus alkalmazásokhoz gyakran használt API-k engedélyezésére vonatkozó képességek a következők:

Képesség 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 (hang rögzítésekor), DictationRecognizer, GrammarRecognizer és KeywordRecognizer
InternetClient DictationRecognizer (és a Unity Profiler használata)

Lásd még