Table of Contents

Target の状態を取得する

Session の実行中、target は tracking や lost などの状態変化を経験します。以下の内容では、target の状態情報を取得して使用する方法、および found と lost events を使用して content の表示を制御する方法を説明します。

始める前に

  • ARSession introduction を通じて、session の基本概念、構成、workflow を理解します。
  • Target を通じて、target の基本概念、状態、lifecycle を理解します。

Target が tracking されているかを判断する

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

Target の found と lost events を使用する

TargetController.TargetFoundTargetController.TargetLost events を使用して、target が tracking された場合と lost した場合を処理できます。

たとえば、次のコードは target が tracking されたときに動画を再生し、target が lost したときに video playback を一時停止する処理を示しています。

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

target を手動でアンロードしていない場合、session 停止時に TargetController.TargetLost が呼び出される可能性があります。session を手動で停止していない場合、session の OnDestroy 中に呼び出される可能性があります。Unity の OnDestroy 実行順序は保証されないため、event 内で使用するオブジェクトは有効性を確認し、OnDestroy 中にすでに破棄されたオブジェクトへアクセスしないようにする必要があります。

次の手順

  • active control policy では、target 下のオブジェクトの default show and hide policy と、必要に応じて調整する方法を紹介します。