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:
- ActiveWhileTracked: Quando tracciato, il GameObject viene attivato (GameObject.activeSelf impostato su
true); quando il tracking è perso, il GameObject viene disattivato (GameObject.activeSelf impostato sufalse). - ActiveAfterFirstTracked: Prima del primo tracking, il GameObject rimane disattivato (GameObject.activeSelf impostato su
false); una volta tracciato con successo, il GameObject rimane attivato permanentemente (GameObject.activeSelf impostato sutrue).
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

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

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.

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.