Table of Contents

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:

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

alt text

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

alt text

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.

alt text

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.