Share via


IAnchorManager

Il motore Frozen World si basa su una rete di ancoraggi spaziali che circondano l'utente da cui viene calcolato lo spazio a blocco mondiale ideale.

IAnchorManager gestisce tale rete e la fornisce al motore per l'elaborazione di ogni fotogramma.

Attualmente sono disponibili numerose implementazioni di IAnchorManager, tutte derivate dalla classe di base AnchorManager in Assets/WorldLocking.Core/Script/AnchorManager.cs. AnchorManager modifica SpongyAnchors astratti, eseguendo operazioni comuni di manutenzione del grafico di ancoraggio. Le specializzazioni interagiscono con LE API specifiche della piattaforma, ad esempio, la classe AnchorManagerXR gestisce SpongyAnchors compilata in XRAnchors. Il motore Frozen World stesso è agnostico al tipo di ancoraggi usati.

Man mano che l'utente si sposta intorno all'ambiente, AnchorManager aumenta il grafico degli ancoraggi in base all'algoritmo semplice ma efficace seguente:

  • Se l'ancoraggio esistente più vicino è maggiore di X metri dall'utente, allora:
    • Aggiungere un nuovo ancoraggio.
    • Aggiungere bordi dal nuovo ancoraggio a tutti gli ancoraggi esistenti inferiori a Y metri dal nuovo ancoraggio.

I valori di 'X' e 'Y' sopra sono costanti in AnchorManager, come MinAnchorDistance e MaxAnchorDistance rispettivamente. Queste proprietà potrebbero essere convertite in proprietà, offrendo maggiore flessibilità al costo della complessità nell'area API WorldLockingContext. Tuttavia, i valori correnti di 1 metro e 1,2 metri, rispettivamente, sono stati soddisfacenti fino a oggi.

L'algoritmo precedente aumenta il grafico degli ancoraggi nello spazio attraversato dall'utente durante l'esplorazione iniziale, alla fine si trova in una rete statica.

Il gestore di ancoraggio può anche rendere persistente il grafico di ancoraggio tra più sessioni.

AnchorManager offre opzioni per salvare automaticamente il grafico di ancoraggio durante la sessione, caricare il grafico salvato in precedenza all'avvio o salvare e caricare su richiesta. La disponibilità di persistenza dipende dal supporto della piattaforma.

Vedi anche

Informazioni di riferimento sulle API: