Table of Contents

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:

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

alt text

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

alt text

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.

alt text

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.