Strategia di controllo active per target e origin
Attraverso il seguente contenuto, 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, la composizione e il ciclo di vita di XR Origin.
Controllo active e tipi di strategie di controllo
Durante l'esecuzione della session, target e origin attraversano cambiamenti di stato come il tracciamento e la perdita. Tramite 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 è responsabile della gestione automatica dello stato GameObject.activeSelf degli oggetti di target e origin, in modo da visualizzare i contenuti quando il target viene tracciato o il tracciamento del movimento inizia, e nasconderli quando il target viene perso o prima che il tracciamento del movimento sia inizializzato con successo.
ActiveController offre due diverse strategie di controllo active:
- ActiveWhileTracked: Durante il tracciamento, GameObject viene attivato (GameObject.activeSelf impostato su
true); alla perdita del tracciamento, GameObject viene disattivato (GameObject.activeSelf impostato sufalse). - ActiveAfterFirstTracked: Prima del primo tracciamento, GameObject viene disattivato (GameObject.activeSelf impostato su
false); una volta tracciato con successo, GameObject rimane attivato (GameObject.activeSelf impostato sutrue).
Per impostazione predefinita, TargetController utilizza la strategia ActiveWhileTracked, il che significa che quando il target viene tracciato, il target e i suoi contenuti vengono attivati, mentre quando il tracciamento viene perso, il target e i suoi contenuti vengono disattivati.
Per impostazione predefinita, XROriginChildController utilizza la strategia ActiveAfterFirstTracked, il che significa che prima dell'inizializzazione riuscita del tracciamento del movimento, l'origine e i suoi contenuti vengono disattivati, mentre una volta inizializzato con successo, l'origine e i suoi contenuti rimangono attivati.
Scegliere 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.

Nello script, è possibile sovrascrivere la strategia di controllo active predefinita tramite la proprietà OverrideStrategy.
Ad esempio, il seguente codice mostra come impostare la strategia di controllo active del target su ActiveAfterFirstTracked:
target.ActiveController.OverrideStrategy = ActiveController.Strategy.ActiveAfterFirstTracked;
Le modifiche alla strategia active entrano in vigore immediatamente e aggiornano GameObject.activeSelf in base allo stato corrente del tracciamento.
Disattivare il controllo active
Se è necessario disabilitare completamente il controllo active, ad esempio per gestirlo manualmente secondo necessità, è possibile disattivarlo disabilitando il componente ActiveController.

Nello script, è possibile disattivare il controllo active impostando la proprietà ActiveController.enabled.
target.ActiveController.enabled = false;
Le modifiche alla proprietà enabled entrano in vigore immediatamente e non aggiorneranno più GameObject.activeSelf in base allo stato del tracciamento. Se il componente ActiveController viene riabilitato, GameObject.activeSelf verrà aggiornato in base allo stato corrente del tracciamento.