Share via


Rekommenderade inställningar för Unity

Unity tillhandahåller en uppsättning standardalternativ som vanligtvis är det genomsnittliga fallet för alla plattformar. Unity erbjuder dock vissa beteenden som är specifika för mixad verklighet och som kan växlas genom projektinställningar.

Konfiguration av högpresterande miljö

Inställningar av låg kvalitet

Det är viktigt att ändra inställningarna för Unity-kvalitet till Mycket låg så att ditt program körs och fungerar bra vid lämplig ramhastighet, särskilt för HoloLens-utveckling. För utveckling av integrerande headset, beroende på specifikationerna för skrivbordet som driver VR-upplevelsen, kan man fortfarande uppnå framerate utan parametrar av lägsta kvalitet.

I Unity 2019 LTS+ kan du ange projektets kvalitetsnivå genom att gå till Redigera>projektinställningar>kvalitet och ställa in Standard genom att klicka på nedåtpilen till nivån **Mycket låg kvalitet.

Belysningsinställningar

Precis som med sceninställningar för kvalitet är det viktigt att ange optimala belysningsinställningar för ditt Mixed Reality program. I Unity är den belysningsinställning som vanligtvis har störst prestandapåverkan på din scen global belysning i realtid. Du kan inaktivera global belysning genom att gå till Inställningar förfönsterrenderingsbelysning>>>Realtids global belysning.

Det finns en annan belysningsinställning, Baked Global Illumination. Den här inställningen kan ge högpresterande och visuellt slående resultat på integrerande headset, men den gäller inte för HoloLens-utveckling. Bakad global belysning beräknas endast för statiska GameObjects, som inte finns i HoloLens-scener på grund av en okänd och föränderlig miljö.

Mer information finns i Global Illumination från Unity .

Anteckning

Global belysning i realtid anges per scen och därför måste utvecklare spara den här egenskapen för varje Unity-scen i projektet.

Sökväg för enkel direkt instancing-återgivning

I Mixed Reality program återges scenen två gånger: en gång för varje öga. Jämfört med traditionell 3D-utveckling fördubblar detta effektivt mängden arbete som behöver beräknas. Det är viktigt att välja den mest effektiva renderingsvägen i Unity för att spara på både CPU- och GPU-tid. Rendering med enkel pass-instans optimerar Unity-renderingspipelinen för appar med mixad verklighet. Vi rekommenderar att du aktiverar den här inställningen som standard för varje projekt.

Så här aktiverar du den här funktionen i ditt Unity-projekt

  1. Öppna OpenXR-inställningar (gå till Redigera>projektinställningar>XR Plugin Management>OpenXR).
  2. Välj Single Pass Instanced i den nedrullningsbara menyn Rendera läge .

Läs följande artiklar från Unity för mer information om den här återgivningsmetoden.

Anteckning

Ett vanligt problem med Single Pass Instanced Rendering uppstår om utvecklare redan har befintliga anpassade skuggor som inte har skrivits för instancing. När du har aktiverat den här funktionen kan utvecklare märka att vissa GameObjects bara renderas i ett öga. Det beror på att de associerade anpassade skuggningarna inte har lämpliga egenskaper för instancing.

Se Stereorendering med enkel pass för HoloLens från Unity för information om hur du åtgärdar det här problemet

Aktivera delning av djupbuffert

För att uppnå bättre hologramstabilitet från användarens uppfattning rekommenderar vi att du aktiverar egenskapen Delning av djupbuffert i Unity. Genom att aktivera detta delar Unity djupkartan som skapats av ditt program med Windows Mixed Reality-plattformen. Plattformen kan sedan optimera hologramstabiliteten mer specifikt för din scen för en viss bildruta som återges av ditt program.

Så här aktiverar du den här funktionen i ditt Unity-projekt

  1. Öppna OpenXR-inställningar (gå till Redigera>projektinställningar>XR Plugin Management>OpenXR).
  2. Välj Djup 16 bitar från den nedrullningsbara menyn Djupöverföringsläge .

16-bitarsinställningen för djupbuffert rekommenderas särskilt för HoloLens-utveckling. Om du väljer 16-bitars jämfört med 24-bitars minskar bandbreddskraven avsevärt eftersom mindre data måste flyttas/bearbetas. Som sagt, optimeringen kommer med viss kostnad. Se till att du förstår konsekvenserna som anges i rutorna Viktigt nedan.

För att den Windows Mixed Reality plattformen ska optimera hologramstabiliteten förlitar den sig på att djupbufferten är korrekt och matchar eventuella renderade hologram på skärmen. Med djupbuffertdelning på är det därför viktigt när du återger färg för att även återge djup. I Unity renderar de flesta ogenomskinliga eller TransparentCutout-material djup som standard, men transparenta objekt och textobjekt återges inte djup, även om detta är beroende av skuggningar och andra faktorer.

Om du använder Mixed Reality Toolkit Standard-skuggning, för att återge djup för transparenta objekt:

  1. Välj det transparenta material som använder MRTK Standard-skuggningen och öppna fönstret Inspector-redigeraren
  2. Välj knappen Åtgärda nu i varningen om delning av djupbuffert. Detta kan också utföras manuellt genom att ange Renderingsläge till Anpassad. ställ sedan in LägeTransparent och ställ slutligen in Djupskrivningpå På

Viktigt

Utvecklare bör akta sig för Z-fighting när de ändrar dessa värden tillsammans med kamerans nästan / långt plan inställningar. Z-Fighting inträffar när två gameobjects försöker rendera till samma pixel och på grund av begränsningar i återgivningen av djupbufferten (dvs. z djup), kan Unity inte urskilja vilket objekt som ligger framför det andra. Utvecklare kommer att notera en flimrande mellan två spelobjekt när de kämpar för samma z-djupvärde. Detta kan lösas genom att växla till 24-bitars djupformat eftersom det kommer att finnas ett större värdeintervall för varje objekt att beräkna på för deras z-djup från kameran.

Det rekommenderas dock, särskilt för HoloLens-utveckling, att ändra kamerans när och fjärran plan till ett mindre intervall istället och behålla 16-bitars djupformatet. Z-djupet är icke-linjärt mappat till värdeintervallet längs de närliggande och fjärran kameraplanerna. Du kan ändra detta genom att välja huvudkameran i scenen och ändra värdena för Nära & långt urklippsplan under Kontroll för att minska deras intervall (t.ex. från 1000m till 100m eller annat x-värde osv.)

Viktigt

Unity skapar ingen stencilbuffert när du använder 16-bitars djupformat. Därför fungerar inte vissa unity-gränssnittseffekter och andra stencil-obligatoriska effekter om inte 24-bitars djupformat väljs, vilket skapar en 8-bitars stencilbuffert.

Byggnad för IL2CPP

Unity har inaktuellt stöd för .NET-skriptserverdelen och rekommenderar därför att utvecklare använder IL2CPP för sina UWP Visual Studio-versioner. Även om det ger olika fördelar kan det ta längre tid att skapa din Visual Studio-lösning från Unity för IL2CPP än den gamla .NET-metoden. Därför rekommenderar vi starkt att du följer metodtipsen för att skapa IL2CPP för att spara på iterationstiden för utveckling.

  1. Utnyttja inkrementell byggnad genom att skapa projektet till samma katalog varje gång och återanvända de färdiga filerna där
  2. Inaktivera programgenomsökningar mot skadlig kod för projektet & skapa mappar
    • Öppna Skydd mot virus &-hot under din app för Windows 10-inställningar
    • Välj Hantera inställningar under Inställningar för skydd mot virus & hot
    • Välj Lägg till eller ta bort undantag under avsnittet Undantag
    • Välj Lägg till ett undantag och välj mappen som innehåller Unity-projektkoden och kompileringsutdata
  3. Använda en SSD för att skapa

Mer information finns i Optimera byggtider för IL2CPP .

Anteckning

Dessutom kan det vara fördelaktigt att konfigurera en cacheserver, särskilt för Unity-projekt med en stor mängd tillgångar (exklusive skriptfiler) eller ständigt föränderliga scener/tillgångar. När du öppnar ett projekt lagrar Unity kvalificerade tillgångar i ett internt cacheformat på utvecklardatorn. Objekt måste importeras på nytt och bearbetas på nytt när de ändras. Den här processen kan göras en gång och sparas på en cacheserver och därför delas med andra utvecklare för att spara tid, i stället för att varje utvecklare bearbetar återimporten av nya ändringar lokalt.

Publiceringsegenskaper

Holografisk välkomstskärm

HoloLens har en processor och GPU i mobilklass, vilket innebär att det kan ta lite längre tid att läsa in appar. Medan appen läses in ser användarna bara svart, så de kanske undrar vad som händer. För att lugna dem under inläsningen kan du lägga till en holografisk välkomstskärm.

Så här växlar du holografisk välkomstskärm:

  1. Gå till sidan Redigera>projektinställningar>spelare
  2. Välj fliken Windows Store och öppna avsnittet Välkomstbild
  3. Använd bilden under egenskapen Windows Holographic Holographic > Splash Image .
    • Om du hämtar alternativet Visa unity-välkomstskärm aktiveras eller inaktiveras välkomstskärmen i Unity. Om du inte har någon Unity Pro-licens visas alltid välkomstskärmen i Unity.
    • Om en Holographic Splash Image används visas den alltid oavsett om kryssrutan Visa Unity-välkomstskärmen är aktiverad eller inaktiverad. Att ange en anpassad holografisk välkomstbild är bara tillgängligt för utvecklare med en Unity Pro-licens.
Visa Unity-välkomstskärmen Holographic Splash Image Beteende
Ingen Visa standardskärmen för Unity-välkomstskärmen i 5 sekunder eller tills appen har lästs in, beroende på vilket som är längre.
Anpassat Visa anpassad välkomstskärm i 5 sekunder eller tills appen har lästs in, beroende på vilket som är längre.
Av Ingen Visa transparent svart (ingenting) tills appen har lästs in.
Av Anpassat Visa anpassad välkomstskärm i 5 sekunder eller tills appen har lästs in, beroende på vilket som är längre.

Mer information finns i dokumentationen för Välkomstskärmen i Unity .

Spåra förlust

Ett headset för mixad verklighet är beroende av att se miljön runt den för att konstruera världslåst koordinatsystem, vilket gör att hologram kan förbli på plats. När headsetet inte kan hitta sig självt i världen sägs headsetet ha förlorat spårningen. I dessa fall fungerar inte funktioner som är beroende av världslåst koordinatsystem, till exempel rumsliga faser, spatiala fästpunkter och rumslig mappning.

Om spårningen går förlorad är Unitys standardbeteende att sluta återge hologram, pausa spelslingan och visa en spårningsavisering som bekvämt följer användarnas blick. Anpassade meddelanden kan också tillhandahållas i form av en spårningsförlustbild. För appar som är beroende av spårning för hela upplevelsen räcker det att låta Unity hantera detta helt tills spårningen har återtagits. Utvecklare kan ange en anpassad avbildning som ska visas under spårningsförlust.

Så här anpassar du den förlorade spårningsbilden:

  1. Gå till sidan Redigera>projektinställningar>spelare
  2. Välj på fliken Windows Store och öppna avsnittet Välkomstbild
  3. Använd avbildningen under egenskapen Windows Holographic > Tracking Loss Image .

Avaktivering av automatisk paus

Vissa appar kanske inte kräver spårning (t.ex. endast orienteringsappar , till exempel 360-graders videovisningsprogram) eller kan behöva fortsätta bearbetningen oavbrutet när spårningen går förlorad. Du kan avanmäla dig från standardförlusten av spårningsbeteendet, men du är ansvarig för att dölja/inaktivera objekt, vilket inte återges korrekt i ett spårningsförlustscenario. I de flesta fall är det enda innehåll som rekommenderas att återges i så fall kroppslåst innehåll, centrerat runt huvudkameran.

Så här avregistrerar du dig från funktionen för automatisk paus:

  1. Gå till sidan Redigera>projektinställningar>spelare
  2. Välj fliken Windows Store och öppna avsnittet Välkomstbild
  3. Ändra kryssrutan Windows Holographic > On Tracking Loss Pause och Show Image (Visa bild ).

Spåra förlusthändelser

Om du vill definiera anpassat beteende när spårning går förlorad hanterar du de globala spårningsförlusthändelserna.

Funktioner

För att en app ska kunna dra nytta av vissa funktioner måste den deklarera lämpliga funktioner i sitt manifest. Manifestdeklarationerna kan göras i Unity så att de ingår i varje framtida projektexport.

Funktioner kan aktiveras för ett Mixed Reality program genom att:

  1. Gå till sidan Redigera>projektinställningar>spelare
  2. Välj fliken Windows Store, öppna avsnittet Publiceringsinställningar och leta efter listan Funktioner

De tillämpliga funktionerna för att aktivera de vanliga API:erna för holografiska appar är:

Funktion API:er som kräver funktioner
SpatialPerception SurfaceObserver
Webbkamera PhotoCapture och VideoCapture
PicturesLibrary/VideosLibrary PhotoCapture respektive VideoCapture (vid lagring av det insamlade innehållet)
Mikrofon VideoCapture (när du samlar in ljud), DictationRecognizer, GrammarRecognizer och KeywordRecognizer
InternetClient DictationRecognizer (och för att använda Unity Profiler)

Se även