Table of Contents

Target の状態を取得

セッションの実行中、target はトラッキングや消失などの状態変化を経ます。以下の内容を通じて、target の状態情報を取得・利用する方法、および検出(found)と消失(lost)イベントを使用してコンテンツの表示を制御する方法を理解できます。

開始する前に

  • ARSession の概要 を通じて、セッションの基本概念、構成要素、ワークフローを理解してください。
  • Target を通じて、target の基本概念、状態、ライフサイクルを理解してください。

Target がトラッキングされているかどうかを判断する

TargetController.IsTracked プロパティを使用して、target がトラッキングされているかどうかを判断できます。

Target の found と lost イベントを使用する

TargetController.TargetFound および TargetController.TargetLost イベントを使用して、target がトラッキングされた場合や消失した場合の処理を行えます。

例えば、以下のコードは target がトラッキングされた時に動画を再生し、target が消失した時に動画再生を一時停止するプロセスを示しています:

target.TargetFound += () =>
{
    if (player && player.gameObject.activeInHierarchy)
    {
        player.Play();
    }
};
target.TargetLost += () =>
{
    if (player && player.gameObject.activeInHierarchy)
    {
        player.Pause();
    }
};
注意

target を手動でアンロードしない場合、TargetController.TargetLost はセッション停止時に呼び出される可能性があります。セッションを手動で停止しない場合、これはセッションの OnDestroy プロセス中に呼び出されることがあります。Unity の OnDestroy 実行順序は保証されていないため、イベント内で使用するオブジェクトに対して有効性チェックを行い、OnDestroy プロセス中に既に破棄されたオブジェクトへアクセスすることを避ける必要があります。

次のステップ

  • アクティブ制御戦略 では、target に関連するオブジェクトのデフォルト表示・非表示戦略と、必要に応じた調整方法について説明しています。