Table of Contents

Active-control-Strategien für target und origin

Im Folgenden erfahren Sie die standardmäßigen Strategien zum Anzeigen und Ausblenden von Objekten unter target und origin sowie wie Sie sie bei Bedarf anpassen.

Vor dem Start

  • Lesen Sie Target, um die Grundkonzepte, Zustände und den Lebenszyklus von target zu verstehen.
  • Lesen Sie XR Origin, um die Grundkonzepte, Zusammensetzung und den Lebenszyklus von XR Origin zu verstehen.

Active control und Arten von Kontrollstrategien

Während eine session läuft, durchlaufen target und origin Zustandsänderungen wie tracking und lost. Durch active-control-Strategien kann das Anzeige- und Ausblendverhalten von Objekten unter target und origin automatisch verwaltet werden.

In Unity ist die Komponente ActiveController dafür verantwortlich, den Zustand GameObject.activeSelf von target- und orign-Objekten automatisch zu verwalten, damit Inhalte angezeigt werden, nachdem target verfolgt wird oder motion tracking mit dem Tracking beginnt, und ausgeblendet werden, wenn target verloren geht oder bevor motion tracking erfolgreich initialisiert wurde.

ActiveController bietet zwei verschiedene active-control-Strategien:

Standardmäßig verwendet TargetController die Strategie ActiveWhileTracked. Das bedeutet, dass target und seine Inhalte aktiviert werden, wenn target verfolgt wird, und dass target und seine Inhalte deaktiviert werden, wenn tracking verloren geht.

Standardmäßig verwendet XROriginChildController die Strategie ActiveAfterFirstTracked. Das bedeutet, dass origin und seine Inhalte deaktiviert werden, bevor motion tracking erfolgreich initialisiert wurde, und dass origin und seine Inhalte aktiviert bleiben, sobald motion tracking erfolgreich initialisiert wurde.

Eine andere active-control-Strategie auswählen

Öffnen Sie das Inspector-Panel und wählen Sie im Dropdown-Menü Strategy die Option Input.

alt text

Wählen Sie anschließend rechts die gewünschte active-control-Strategie aus, um die Standardstrategie zu überschreiben.

alt text

In Skripten können Sie die standardmäßige active-control-Strategie über die Eigenschaft OverrideStrategy überschreiben.

Der folgende Code zeigt beispielsweise, wie die active-control-Strategie von target auf ActiveAfterFirstTracked gesetzt wird:

target.ActiveController.OverrideStrategy = ActiveController.Strategy.ActiveAfterFirstTracked;

Änderungen an der active-Strategie werden sofort wirksam und GameObject.activeSelf wird entsprechend dem aktuellen tracking-Zustand aktualisiert.

Active control deaktivieren

Wenn Sie active control vollständig deaktivieren müssen, beispielsweise um es nach Bedarf selbst zu steuern, können Sie active control durch Deaktivieren der Komponente ActiveController ausschalten.

alt text

In Skripten können Sie active control deaktivieren, indem Sie die Eigenschaft ActiveController.enabled setzen.

target.ActiveController.enabled = false;

Änderungen an der Eigenschaft ActiveController.enabled werden sofort wirksam, und GameObject.activeSelf wird nicht mehr entsprechend dem tracking-Zustand aktualisiert. Wenn die Komponente ActiveController erneut aktiviert wird, wird GameObject.activeSelf entsprechend dem aktuellen tracking-Zustand aktualisiert.