Strumenti e visualizzatori
Gli strumenti e i visualizzatori nello spazio dei nomi Microsoft.MixedReality.WorldLocking.Tools sono utili durante lo sviluppo. Possono anche essere un punto di partenza per l'interazione diretta avanzata con il sistema WLT (World Locking Tools).
Anche se non sono destinati all'utilizzo diretto così come si trova all'interno di un'applicazione, lo sviluppatore dell'applicazione è libero di scegliere di farlo.
WorldLocking.Core è progettato per funzionare così come è in qualsiasi scenario di applicazione appropriato. Tuttavia, gli strumenti possono fare ipotesi sull'applicazione. Questi presupposti possono renderli inappropriati in alcune situazioni.
Prima di incorporare uno degli strumenti direttamente all'interno dell'applicazione di spedizione, è consigliabile creare una versione di tale strumento personalizzata per i propri requisiti e risorse.
Strumenti
Aggiustatori
I regolatori sono componenti che gestiscono gli eventi di adattamento. In particolare, creano punti allegati. In caso di operazione di adattamento, AttachmentPoint funge da callback di notifica. L'oggetto Adjuster gestisce l'evento in modo appropriato.
Vedere altre informazioni concettuali su AttachmentPoints.
La reazione esatta a un evento di adattamento varia per i diversi tipi di oggetti ed è molto specifica dell'applicazione. Ad esempio, se il frammento dell'oggetto è attualmente inattivo, l'oggetto deve essere visualizzato? Per alcune applicazioni, poiché non è possibile determinare la posizione corretta dell'oggetto, deve essere nascosta. Per altre applicazioni, potrebbe essere preferibile visualizzare l'oggetto in una posizione temporaneamente non corretta che soffrire della confusione della sua scomparsa. E anche per le applicazioni che devono nascondere l'oggetto, esistono diversi modi per eseguire il nascondimento (ad esempio, disabilitando o spostandosi lontano).
I componenti AdjusterFixed e AdjusterMoving gestiscono in modo minimo due scenari comuni.
Il componente AdjusterFixed presuppone che la destinazione non sia in genere in movimento. Se gli strumenti di blocco globale inviano una posizione di regolazione a causa di un evento di rifitting, è destinato a mantenere l'oggetto di AdjusterFixed in tutto il mondo.
Al contrario, il componente AdjusterMoving presuppone che la destinazione sia mobile tramite lo spazio di coordinate unity. Mantiene il sistema World Locking Tools generato dalla posizione della destinazione, in modo che in caso di un'operazione di adattamento, il sistema può fornire la correzione più accurata per mantenere la posizione della destinazione rispetto alla costante del mondo fisico in quel momento.
Adapter
I componenti adapter sono destinati solo all'illustrazione. Se si usa uno degli adapter, è consigliabile ripensare a come si sta provando a usare gli strumenti di blocco globale.
In particolare, MRTK dispone già di adattatori predefiniti, quindi non è necessaria alcuna trasformazione del sistema di coordinate aggiuntivo nella parte dell'applicazione.
In alcuni casi, soprattutto se non si usa MRTK, quando si esegue la conversione da risorse native, che segnalano le coordinate di Spongy Space a Frozen Space. In questi casi, lo sviluppatore dell'applicazione potrebbe trovare uno degli adapter inclusi qui per essere un buon riferimento.
WorldAnchorAdapter : un WorldAnchor regola la posizione di un oggetto nello spazio Spongy per rimanere fissa nello spazio fisico. Ciò è ridondante con lo spazio bloccato a livello mondiale fornito da World Locking Tools e quindi l'oggetto si allontana nello spazio congelato. Questo adattatore consente a un WorldAnchor di mantenere la posizione di un oggetto in Frozen Space. Questa operazione non è necessaria, ad eccezione della diagnostica. Tutti gli oggetti nello spazio di coordinate globale di Unity sono bloccati da World Locking Tools.
ToggleWorldAnchor : simile all'elemento WorldAnchorAdapter, ma può essere attivato o disattivato. Converte automaticamente anche in un normale comportamento WorldAnchor quando WorldLockingManager è disabilitato. Utile solo per la diagnostica.
FrozenSpatialMapping : un adattatore gestisce e esegue correttamente il rendering dei risultati da un surfaceObserver. Il sistema di riconoscimento spaziale MRTK fornisce tutte queste funzionalità e altro ancora e non richiede alcuna scheda per lavorare con Gli strumenti di blocco globale.
FrozenTapToAdd : interfaccia diretta con il sistema di input di Unity richiede la conversione dei dati delle coordinate in ingresso, come illustrato di seguito. Questa operazione non è necessaria con il sistema di input di MRTK.
Visualizzatori
Visualizzazione del grafico di ancoraggio
AnchorGraphVisual e il relativo prefab associato sono il nucleo delle visualizzazioni fornite. I componenti sono i seguenti:
Assi: le posizioni correnti per le origini di Spongy Space (verde) e Dello spazio congelato (blu) vengono visualizzate come identificatori standard 3 dell'asse delle frecce.
Ancoraggi Spongy: si tratta degli ancoraggi sottostanti nativi creati per alimentare l'ottimizzazione del motore frozen world. Ognuno è rappresentato da un anello, insieme a un tag di testo che lo identifica. Inoltre, altre informazioni vengono trasmesse in base al colore e alle dimensioni.
Un ancoraggio tracciato attivo sarà verde.
Un ancoraggio tracciato con rilevanza zero sarà rosso.
Un ancoraggio non supportato sarà giallo.
Più grande è l'anello, maggiore è la rilevanza per tale ancoraggio.
Ancoraggi bloccati: questi sono i punti di riferimento corrispondenti in Frozen Space. In assenza di errori di rilevamento, questi saranno esattamente allineati con gli ancoraggi Spongy.
Spongy-Frozen Edge- Questi collegano gli ancoraggi Spongy ai corrispondenti ancoraggi congelati. Poiché in assenza di errore di tracker, questi sarebbero coincidenti, non vedendo questi bordi significa che tutto funziona perfettamente. In ogni caso, questi bordi non devono essere più lunghi di pochi centimetri. Sono rossi sulla fine congelata. Il colore si dissolve in blu sulla fine spongia.
Archi di ancoraggio: queste sottili linee blu-grigie mostrano le connessioni tra ancoraggi Spongy nel grafico di ancoraggio.
L'abilitazione della visualizzazione del grafico di ancoraggio generato da World Locking Tools man mano che l'utente si sposta sull'ambiente fisico richiede solo l'eliminazione del prefab > AnchorGraphVisual WorldLockingTools > nella scena. Viene aggiunto in modo personalizzato come elemento di pari livello a WorldLockingContext, ma la posizione esatta nella gerarchia non è importante. Tuttavia, non deve essere posizionato nella gerarchia della fotocamera.
Gli ancoraggi nello spazio creati e utilizzati internamente da WLT vengono creati nella posizione della fotocamera. Poiché è sconcertante camminare attraverso un campo di visualizzazioni di ancoraggio a livello di occhio, per impostazione predefinita il sistema li visualizza 1 metro verso il basso dalla loro vera posizione. Per visualizzare le visualizzazioni di ancoraggio nelle posizioni di ancoraggio effettive, impostare il parametro Spostamento verticale del componente Visivo grafico di ancoraggio su zero.
Output aggiuntivo
Gli esempi di blocco globale includono la diagnostica del testo. La maggior parte di queste sono rilevanti solo per gli sviluppatori di World Locking Tools, anziché per i client delle sue capacità. Tuttavia, sono disponibili per la lettura e, come illustrato nello script StatusToText , per la visualizzazione in tempo reale.
Per l'analisi postmortem, la sezione Diagnostica di WorldLockingContext può essere molto utile nella segnalazione di errori di Frozen World Engine. Per altre informazioni, vedere Segnalazione di un bug .