Table of Contents

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:

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.

alt text

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

alt text

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.

alt text

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.