Table of Contents

Strategia di controllo active per target e origin

Attraverso i seguenti contenuti, apprenderai le strategie predefinite di visualizzazione e nascondimento degli oggetti sotto target e origin, e come regolarle secondo necessità.

Prima di iniziare

  • Leggi Target per comprendere i concetti base, gli stati e il ciclo di vita del target.
  • Leggi XR Origin per comprendere i concetti base, i componenti e il ciclo di vita di XR Origin.

Controllo active e tipi di strategie di controllo

Durante l'esecuzione della sessione, target e origin subiscono cambiamenti di stato come il tracking e la perdita. Utilizzando la strategia di controllo active, è possibile gestire automaticamente il comportamento di visualizzazione e nascondimento degli oggetti sotto target e origin.

In Unity, il componente ActiveController gestisce automaticamente lo stato GameObject.activeSelf degli oggetti target e origin, in modo da visualizzare i contenuti quando il target viene tracciato o l'origin inizia il motion tracking, e nasconderli quando il target viene perso o prima che il motion tracking sia inizializzato correttamente.

ActiveController offre due diverse strategie di controllo active:

Per impostazione predefinita, TargetController utilizza la strategia ActiveWhileTracked, il che significa che quando il target è tracciato, il target e i suoi contenuti vengono attivati, mentre quando il tracking è perso, vengono disattivati.

Per impostazione predefinita, XROriginChildController utilizza la strategia ActiveAfterFirstTracked, il che significa che prima dell'inizializzazione corretta del motion tracking, origin e i suoi contenuti rimangono disattivati, mentre una volta inizializzato correttamente, rimangono attivati permanentemente.

Selezione di una diversa strategia di controllo active

Apri il pannello Inspector, nel menu a discesa Strategy seleziona Input

alt text

Quindi a destra seleziona la strategia di controllo active desiderata per sovrascrivere quella predefinita.

alt text

Negli script, è possibile sovrascrivere la strategia di controllo active predefinita tramite la proprietà OverrideStrategy.

Ad esempio, il codice seguente mostra come impostare la strategia di controllo active del target su ActiveAfterFirstTracked:

target.ActiveController.OverrideStrategy = ActiveController.Strategy.ActiveAfterFirstTracked;

Le modifiche alla strategia active hanno effetto immediato e aggiornano GameObject.activeSelf in base allo stato corrente del tracking.

Disattivazione del controllo active

Se è necessario disabilitare completamente il controllo active, ad esempio per gestirlo manualmente, è possibile disattivare il componente ActiveController.

alt text

Negli script, è possibile disattivare il controllo active impostando la proprietà ActiveController.enabled.

target.ActiveController.enabled = false;

Le modifiche alla proprietà ActiveController.enabled hanno effetto immediato e non aggiorneranno più GameObject.activeSelf in base allo stato del tracking. Se il componente ActiveController viene riattivato, GameObject.activeSelf verrà aggiornato in base allo stato corrente del tracking.