Anwendungsfall für target und origin active-steuerungsstrategie
Durch die folgenden inhalte erfahren sie die standardstrategien zur anzeige und ausblendung von objekten unter target und origin sowie deren anpassung bei bedarf.
Voraussetzungen
- Lesen sie Target, um grundlegende konzepte, zustände und lebenszyklus von target zu verstehen.
- Lesen sie XR Origin, um grundlegende konzepte, zusammensetzung und lebenszyklus von XR Origin zu verstehen.
Active-steuerung und strategietypen
Während einer session durchlaufen target und origin zustandsänderungen wie tracking und verlust. Mit der active-steuerungsstrategie können anzeige- und ausblendverhalten von objekten unter target und origin automatisch verwaltet werden.
In Unity verwaltet die ActiveController-komponente automatisch den GameObject.activeSelf-zustand von target- und origin-objekten, um inhalte anzuzeigen, nachdem ein target getrackt wurde oder motion-tracking mit dem tracking beginnt, und sie auszublenden, bevor ein target verloren geht oder motion-tracking erfolgreich initialisiert wurde.
ActiveController bietet zwei verschiedene active-steuerungsstrategien:
- ActiveWhileTracked: Wenn getrackt, wird das GameObject aktiviert (GameObject.activeSelf auf
truegesetzt); bei tracking-verlust wird das GameObject deaktiviert (GameObject.activeSelf auffalsegesetzt). - ActiveAfterFirstTracked: Vor dem ersten tracking wird das GameObject deaktiviert (GameObject.activeSelf auf
falsegesetzt); sobald erfolgreich getrackt, bleibt das GameObject dauerhaft aktiviert (GameObject.activeSelf auftruegesetzt).
Standardmäßig verwendet TargetController die ActiveWhileTracked-strategie, d.h. bei tracking von target werden target und dessen inhalte aktiviert, bei tracking-verlust deaktiviert.
Standardmäßig verwendet XROriginChildController die ActiveAfterFirstTracked-strategie, d.h. vor erfolgreicher motion-tracking-initialisierung werden origin und dessen inhalte deaktiviert, danach dauerhaft aktiviert.
Auswahl einer anderen active-steuerungsstrategie
Öffnen sie das inspector-panel, wählen sie im Strategy-dropdown-menü Input

Wählen sie dann rechts die gewünschte active-steuerungsstrategie, um die standardstrategie zu überschreiben.

In skripten kann die standard-active-steuerungsstrategie über die OverrideStrategy-eigenschaft überschrieben werden.
Der folgende code zeigt beispielsweise, wie die active-steuerungsstrategie für target auf ActiveAfterFirstTracked gesetzt wird:
target.ActiveController.OverrideStrategy = ActiveController.Strategy.ActiveAfterFirstTracked;
Änderungen an der active-strategie werden sofort wirksam und aktualisieren GameObject.activeSelf basierend auf dem aktuellen tracking-status.
Deaktivierung der active-steuerung
Um die active-steuerung vollständig zu deaktivieren, z.b. für manuelle steuerung, kann die ActiveController-komponente deaktiviert werden.

In skripten kann die active-steuerung durch setzen der ActiveController.enabled-eigenschaft deaktiviert werden.
target.ActiveController.enabled = false;
Änderungen an ActiveController.enabled werden sofort wirksam und aktualisieren GameObject.activeSelf nicht mehr basierend auf dem tracking-status. Bei erneuter aktivierung der ActiveController-komponente wird GameObject.activeSelf basierend auf dem aktuellen tracking-status aktualisiert.