Table of Contents

Target および origin 向けの active 制御ストラテジー

以下の内容を通じて、target および origin 下のオブジェクトのデフォルト表示・非表示ストラテジーと、必要に応じた調整方法を理解できます。

開始前に

  • Target を読み、target の基本概念、状態、ライフサイクルを理解してください。
  • XR Origin を読み、XR Origin の基本概念、構成要素、ライフサイクルを理解してください。

active 制御とストラテジータイプ

セッション実行中、target および origin はトラッキングやロストなどの状態変化を経験します。active 制御ストラテジーにより、target および origin 下のオブジェクトの表示・非表示動作を自動管理できます。

Unity では、ActiveController コンポーネントが target および origin オブジェクトの GameObject.activeSelf 状態を自動管理し、target がトラッキングされた時やモーション・トラッキングが開始された後にコンテンツを表示し、target がロストした時やモーション・トラッキングが初期化される前にコンテンツを非表示にします。

ActiveController は2種類の active 制御ストラテジーを提供します:

デフォルトでは、TargetControllerActiveWhileTracked ストラテジーを使用します。これは target がトラッキングされると target およびその下のコンテンツがアクティブ化され、トラッキングロスト時には非アクティブ化されることを意味します。

デフォルトでは、XROriginChildControllerActiveAfterFirstTracked ストラテジーを使用します。これはモーション・トラッキングが正常に初期化されるまで origin およびその下のコンテンツが非アクティブ化され、一度モーション・トラッキングが正常に初期化されると origin およびその下のコンテンツが持続的にアクティブ化されることを意味します。

異なる active 制御ストラテジーの選択

Inspector パネルを開き、Strategy ドロップダウンメニューから Input を選択

alt text

次に右側で必要な active 制御ストラテジーを選択し、デフォルトストラテジーを上書きします。

alt text

スクリプトでは、OverrideStrategy プロパティを通じてデフォルトの active 制御ストラテジーを上書きできます。

例えば、以下のコードは target の active 制御ストラテジーを ActiveAfterFirstTracked に設定する方法を示します:

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

active ストラテジーへの変更は即時有効となり、現在のトラッキング状態に基づいて GameObject.activeSelf が更新されます。

active 制御の無効化

完全に active 制御を無効化する必要がある場合(例:手動制御が必要な場合)、ActiveController コンポーネントを無効化することで active 制御をオフにできます。

alt text

スクリプトでは、ActiveController.enabled プロパティを設定することで active 制御を無効化できます。

target.ActiveController.enabled = false;

ActiveController.enabled プロパティの変更は即時有効となり、トラッキング状態に基づいた GameObject.activeSelf の更新は停止します。ActiveController コンポーネントを再度有効化すると、GameObject.activeSelf は現在のトラッキング状態に基づいて更新されます。