Esempio di fisica bloccata dal mondo.

L'esempio di fisica trave offre alcune esperienze di fisica virtuale abilitate dal sistema di coordinate world locking tools world locked.

Scenario

In HoloLens la relazione tra un ancoraggio spaziale e la testa o altri ancoraggi nello spazio può cambiare in qualsiasi momento, a causa dei dati del sensore in ingresso o anche di rielaborare i dati esistenti.

Gli ancoraggi nello spazio di Unity reagiscono alle modifiche nella posizione dell'ancoraggio spaziale sottostante trascinando l'oggetto GameObject collegato insieme a esso. Questo movimento causa difficoltà per la simulazione della fisica:

  • Poiché la posizione di GameObject ancorata nello spazio viene impostata in modo esplicito dall'ancoraggio nello spazio di ogni fotogramma, non può essere impostata dalla simulazione (ad esempio, momentum).
  • Poiché l'ancoraggio spaziale aggiorna spesso la posizione del GameObject, non sembra essere inattivo rispetto ad altri ancora RigidBodies.
  • A causa di spostamenti impliciti del sistema di coordinate di Unity, poiché gli ancoraggi nello spazio regolano le coordinate degli ologrammi statici per mantenerli fissi rispetto al mondo reale, i calcoli della fisica, ad esempio itinerari e traiettorie, saranno disattivati. Ad esempio, un proiettile perfettamente mirato a un ologramma mancherà ancora se l'ologramma viene riposizionato dall'ancoraggio spaziale tra il calcolo della traiettoria e raggiunge l'obiettivo.

Quando le relazioni tra ancoraggi spaziali misurati e gli oggetti virtuali visibili bloccati diventano incoerenti, quindi anziché regolare gli oggetti virtuali come ancoraggi nello spazio di Unity, Gli strumenti di blocco globale regolano la trasformazione head per ridurre al minimo gli artefatti percepiti da tali incoerenze. Ciò consente agli oggetti virtuali di apparire coerenti in uno spazio di coordinate stabile, eliminando i problemi precedenti.

Compilare l'esempio

L'esempio richiede la funzionalità SpatialPerception. La funzionalità Microfono è necessaria anche per i comandi vocali.

Questo esempio richiede l'aggiunta dei livelli seguenti ai tag del progetto & layer:

  • Pilastro
  • SpatialMapping

Esecuzione della demo

Controlli HUD

Questo HUD di base non è specifico di questo esempio di fascio di fisica, ma consente solo il controllo in fase di esecuzione del comportamento degli strumenti di blocco globale per esplorare le sue funzionalità. È disponibile come drop-in per lo sviluppo in qualsiasi applicazione che usa strumenti di blocco globale, come descritto in Configurazione iniziale degli strumenti di blocco globale.

Screenshot dell'HUD degli esempi

Le statistiche di diagnostica vengono visualizzate per impostazione predefinita, ma possono essere disabilitate da Control HUD.

Pulsanti di opzione modalità

In qualsiasi momento, l'esempio può trovarsi in una delle modalità seguenti:

  • Inattiva: l'esempio di fisica attualmente non elabora l'input. Il menu hud e pulsante di opzione, naturalmente, continuano a elaborare gli input.

  • Throw Dart - Una traiettoria viene calcolata, in base alle leggi di fisica di base e visualizzata. L'arco visualizzato mostra il percorso che verrà seguito da un proiettile generato (tramite il movimento di selezione). La dart generata seguirà una traiettoria balistica, rimbalzando su qualsiasi superficie di collisione, tra cui mesh di ricostruzione spaziale (SR), che influisce.

    Questi darts sono "rimovibili", come descritto di seguito.

  • Aggiungi pilastri - Su un movimento di selezione, un raggio viene gettato nel mondo nella direzione indicata. Se trova una superficie in collisione, alla scena viene aggiunto un pilastro verticale.

    Ogni pilastro aggiunto è in collisione e può fungere da supporto trave, come descritto di seguito. Tuttavia, sono stati aggiunti due tipi di Pilastri:

    • Se il pilastro è impostato su una superficie "rimovibile", il pilastro viene fisicamente simulato (ad esempio, può essere battuto).
    • Altrimenti il pilastro collidabile, ma statico.

    In effetti, questa regola indica se un pilastro viene aggiunto nella mesh SR, sarà statico, ma in caso contrario sarà dinamico.

    I pilastri sono "rimovibili".

  • Aggiungi fascio : nella prima selezione viene eseguito il cast di un raggio nella scena per trovare il primo endpoint del fascio. Successivamente, quando il raggio di selezione viene spostato attraverso la scena, viene disegnata una linea dal primo endpoint all'endpoint corrente. Il secondo movimento di selezione creerà un raggio che si estende tra il primo e l'endpoint corrente.

    Il bilanciamento del fascio con gli endpoint sui pilastri richiede chiaramente uno spazio in cui i pilastri dell'endpoint rimarranno fissi l'uno rispetto all'altro.

    Le travi sono "rimovibili".

  • Rimuovi oggetti: se l'oggetto ray cast è "rimovibile", viene rimosso dalla scena. Tutti gli oggetti supportati dall'oggetto rimosso cadranno quindi.