Active-steuerungsstrategie für target und origin
Erfahren Sie hier die Standardstrategien zum Anzeigen und Ausblenden von Objekten unter target und origin sowie deren Anpassung.
Bevor Sie beginnen
- Lesen Sie Target, um die Grundkonzepte, Zustände und Lebenszyklen von target zu verstehen.
- Lesen Sie XR Origin, um die Grundkonzepte, Zusammensetzung und Lebenszyklen von XR Origin zu verstehen.
Active-steuerung und strategietypen
Während der Sitzung durchlaufen target und origin Zustandsänderungen wie Verfolgung 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, wenn target verfolgt wird oder die Bewegungsverfolgung beginnt, und sie auszublenden, wenn target verloren geht oder bevor die Bewegungsverfolgung erfolgreich initialisiert wurde.
ActiveController bietet zwei verschiedene Active-steuerungsstrategien:
- ActiveWhileTracked: Bei Verfolgung wird das GameObject aktiviert (GameObject.activeSelf auf
truegesetzt); bei Verlust der Verfolgung wird es deaktiviert (GameObject.activeSelf auffalsegesetzt). - ActiveAfterFirstTracked: Vor der ersten Verfolgung bleibt das GameObject deaktiviert (GameObject.activeSelf auf
false); nach erfolgreicher Verfolgung bleibt es dauerhaft aktiviert (GameObject.activeSelf auftrue).
Standardmäßig verwendet TargetController die ActiveWhileTracked-Strategie, d.h. bei Verfolgung werden target und untergeordnete Inhalte aktiviert, bei Verlust deaktiviert.
Standardmäßig verwendet XROriginChildController die ActiveAfterFirstTracked-Strategie, d.h. vor erfolgreicher Initialisierung der Bewegungsverfolgung bleiben origin und untergeordnete Inhalte deaktiviert, danach dauerhaft aktiviert.
Auswahl einer anderen active-steuerungsstrategie
Öffnen Sie das Inspector-Panel, wählen Sie Strategy im Dropdown-Menü und klicken Sie auf Input

Wählen Sie rechts die gewünschte Active-steuerungsstrategie, um die Standardstrategie zu überschreiben.

Im Skript kann die Standardstrategie ü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 Verfolgungsstatus.
Deaktivieren der active-steuerung
Um die Active-steuerung vollständig zu deaktivieren (z.B. für manuelle Steuerung), können Sie die ActiveController-Komponente deaktivieren.

Im Skript kann die Active-steuerung durch Setzen der ActiveController.enabled-Eigenschaft deaktiviert werden.
target.ActiveController.enabled = false;
Änderungen an enabled werden sofort wirksam und aktualisieren GameObject.activeSelf nicht mehr basierend auf dem Verfolgungsstatus. Bei erneuter Aktivierung der ActiveController-Komponente wird GameObject.activeSelf basierend auf dem aktuellen Verfolgungsstatus aktualisiert.