Share via


World Locked Physics Sample.

Physics Beam Sample erbjuder några virtuella fysikupplevelser som aktiveras av World Locking Tools världlåst koordinatsystem.

Bakgrundshistoria

På HoloLens kan relationen mellan ett rumsligt fästpunkt och huvudet eller andra rumsliga fästpunkter ändras när som helst, på grund av inkommande sensordata eller till och med ombearbetning av befintliga data.

Unitys rumsliga fästpunkter reagerar på förändringar i den underliggande rumsliga fästpunktens pose genom att dra den bifogade GameObject tillsammans med den. Den här rörelsen orsakar svårigheter för fysiksimulering:

  • Eftersom den rumsliga förankrade GameObject-posen uttryckligen anges av den rumsliga fästpunkten för varje bildruta, kan den inte anges med simulering (till exempel momentum).
  • Eftersom den rumsliga fästpunkten ofta uppdaterar sin GameObjects pose, verkar den inte vara i vila i förhållande till andra fortfarande RigidBodies.
  • På grund av implicita förändringar av Unitys koordinatsystem, när rumsliga fästpunkter justerar koordinaterna för statiska Hologram för att hålla dem fasta i förhållande till den verkliga världen, kommer fysikberäkningar som vägar och banor att inaktiveras. En projektil som är perfekt riktad mot ett Hologram kommer till exempel fortfarande att missas om hologrammet flyttas av dess rumsliga fästpunkt mellan banberäkningen och når målet.

När relationerna mellan uppmätta rumsliga fästpunkter och synliga virtuella objekt som är låsta till dem blir inkonsekventa, justerar World Locking Tools huvudtransformeringen i stället för att justera de virtuella objekten som Unitys spatiala fästpunkter gör för att minimera upplevda artefakter från dessa inkonsekvenser. På så sätt kan de virtuella objekten verka konsekventa i ett stabilt koordinatutrymme, vilket eliminerar ovanstående problem.

Skapa exemplet

Exemplet kräver spatialperception-funktionen. Mikrofonfunktionen krävs också för röstkommandon.

Det här exemplet kräver att följande lager läggs till i projektets taggar och lager:

  • Pelare
  • SpatialMapping

Köra demonstrationen

Kontrollerna HUD

Den här grundläggande HUD är inte specifik för det här fysikstråleexemplet, men tillåter bara körningskontroll av World Locking Tools beteende för att utforska dess funktioner. Den är tillgänglig som en drop-in för utveckling i alla program med hjälp av World Locking Tools, enligt beskrivningen i World Locking Tools inledande installation.

Skärmbild av hudexemplen

Diagnostikstatistik visas som standard, men kan inaktiveras från Kontroll HUD.

Lägenas alternativknappar

När som helst kan exemplet vara i något av följande lägen:

  • Inaktiv – fysikexemplet bearbetar för närvarande inte indata. MENYN HUD- och radioknapp fortsätter naturligtvis att bearbeta indata.

  • Throw Dart – En bana beräknas, baserat på grundläggande fysiklagar och visas. Den visade bågen visar sökvägen som en projektil som utlöses (via välj gest) kommer att följa. Den kastade pilen kommer att följa en ballistisk bana som studsar av alla kollisionsytor, inklusive Spatial Reconstruction (SR) nät, som den påverkar.

    Dessa dart är "flyttbara", enligt beskrivningen nedan.

  • Lägg till pelare – På en utvald gest kastas en stråle till världen i den angivna riktningen. Om den hittar en kolliderande yta läggs en vertikal pelare till i scenen där.

    Varje pelare som läggs till är kolliderande och kan fungera som ett bjälkstöd enligt beskrivningen nedan. Det finns dock två varianter av pelare som lagts till:

    • Om pelaren är inställd på en "flyttbar" yta simuleras pelaren fysiskt (till exempel kan välts över).
    • Annars kolliderar pelaren, men statisk.

    I själva verket innebär den här regeln att om en pelare läggs till i SR-nätet blir den statisk, men annars blir den dynamisk.

    Pelare är "flyttbara".

  • Lägg till Beam – Vid första valet kastas en stråle in i scenen för att hitta strålens första slutpunkt. Efter det, när markeringsstrålen flyttas genom scenen, ritas en linje från den första slutpunkten till den aktuella slutpunkten. Den andra markeringsgesten skapar en stråle som sträcker sig mellan de första och aktuella slutpunkterna.

    För att balansera strålen med slutpunkter på pelare krävs helt klart ett utrymme där slutpunktspelarna förblir fasta i förhållande till varandra.

    Balkar är "flyttbara".

  • Ta bort objekt – När du väljer, om ray cast-objektet är "flyttbart", tas det bort från scenen. Objekt som stöds av det borttagna objektet faller sedan.