Strategie di active control per target e origin
Con il contenuto seguente, verranno illustrate le strategie predefinite di visualizzazione e nascondimento degli oggetti sotto target e origin, e come regolarle secondo necessità.
Prima di iniziare
- Leggere Target per comprendere i concetti di base, gli stati e il lifecycle di target.
- Leggere XR Origin per comprendere i concetti di base, la composizione e il lifecycle di XR Origin.
Active control e tipi di strategie di controllo
Durante l'esecuzione di una session, target e origin attraversano cambiamenti di stato come tracking e lost. Tramite le strategie di active control, è possibile gestire automaticamente il comportamento di visualizzazione e nascondimento degli oggetti sotto target e origin.
In Unity, il componente ActiveController è responsabile della gestione automatica dello stato GameObject.activeSelf degli oggetti target e orign, in modo che il contenuto venga mostrato dopo che target è tracciato o dopo che motion tracking inizia il tracking, e venga nascosto quando target viene perso o prima che motion tracking sia inizializzato correttamente.
ActiveController fornisce due diverse strategie di active control:
- ActiveWhileTracked: quando viene tracciato, GameObject viene attivato (GameObject.activeSelf impostato su
true); quando tracking viene perso, GameObject viene disattivato (GameObject.activeSelf impostato sufalse). - ActiveAfterFirstTracked: prima del primo tracking, GameObject viene disattivato (GameObject.activeSelf impostato su
false); una volta tracciato con successo, GameObject rimane attivato (GameObject.activeSelf impostato sutrue).
Per impostazione predefinita, TargetController usa la strategia ActiveWhileTracked, il che significa che quando target viene tracciato, target e il contenuto sotto di esso vengono attivati, mentre quando tracking viene perso, target e il suo contenuto vengono disattivati.
Per impostazione predefinita, XROriginChildController usa la strategia ActiveAfterFirstTracked, il che significa che prima che motion tracking sia inizializzato correttamente, origin e il contenuto sotto di esso vengono disattivati, e una volta che motion tracking è inizializzato correttamente, origin e il contenuto sotto di esso rimangono attivati.
Selezionare una diversa strategia di active control
Aprire il pannello Inspector e selezionare Input dal menu a discesa Strategy.

Quindi selezionare a destra la strategia di active control necessaria per sovrascrivere la strategia predefinita.

Negli script, è possibile sovrascrivere la strategia di active control predefinita tramite la proprietà OverrideStrategy.
Ad esempio, il codice seguente mostra come impostare la strategia di active control di target su ActiveAfterFirstTracked:
target.ActiveController.OverrideStrategy = ActiveController.Strategy.ActiveAfterFirstTracked;
Le modifiche alla strategia active hanno effetto immediato e GameObject.activeSelf viene aggiornato in base allo stato di tracking corrente.
Disattivare active control
Se è necessario disabilitare completamente active control, ad esempio per controllarlo secondo necessità, è possibile disattivare active control disabilitando il componente ActiveController.

Negli script, è possibile disattivare active control impostando la proprietà ActiveController.enabled.
target.ActiveController.enabled = false;
Le modifiche alla proprietà ActiveController.enabled hanno effetto immediato e GameObject.activeSelf non viene più aggiornato in base allo stato di tracking. Se il componente ActiveController viene riabilitato, GameObject.activeSelf verrà aggiornato in base allo stato di tracking corrente.