移行ガイド
このガイドでは、AR Foundation 2.x と 3.x の違いについて説明します。
AR Pose Driver
ARPoseDriver
という新しいコンポーネントがあります。このコンポーネントは、TrackedPoseDriver
と同様の機能を提供し、AR Foundation の com.unity.xr.legacyinputhelpers
パッケージへの依存関係を排除するために追加されました。ARPoseDriver
または TrackedPoseDriver
を使用して、デバイスのトラッキング情報に従ってゲームオブジェクトのローカルの位置と向きを制御できるようになりました。同じゲームオブジェクトで ARPoseDriver
コンポーネントと TrackedPoseDriver
コンポーネントの両方を有効にすることは、動作が定義されていないため推奨されません。
画像トラッキング
画像トラッキングマネージャーである ARTrackedImageManager
には、参照画像ライブラリ (環境内で検出する画像のセット) を設定するための referenceLibrary
プロパティがあります。これまで、これは XRReferenceImageLibrary
でした。現在は IReferenceImageLibrary
であり、XRReferenceImageLibrary
に IReferenceImageLibrary
が実装されています。以前にコードで referenceLibrary
プロパティを XRReferenceImageLibrary
に設定していた場合は、引き続き以前と同様に機能します。ただし、以前に referenceLibrary
を XRReferenceImageLibrary
として扱っていた場合は、それを XRReferenceImageLibrary
にキャストする必要があります。
エディターでは、これは常に XRReferenceImageLibrary
です。ただし、ランタイムに画像トラッキングを有効にすると、ARTrackedImageManager.referenceLibrary
は新しい型である RuntimeReferenceImageLibrary
を返します。これは XRReferenceImageLibrary
と同様に動作し (例えば、その参照画像を列挙できます)、追加機能を備えている場合もあります (MutableRuntimeReferenceImageLibrary
を参照)。
背景シェーダー
ARCameraBackground
が更新され、Universal Render Pipeline (ユニバーサルレンダーパイプライン、URP) がサポートされるようになりました (このパッケージが存在する場合)。これには、XRCameraSubsystem
に対する互換性に影響する変更が含まれています。shaderName
プロパティが cameraMaterial
になりました。シェーダー名は AR Foundation が背景マテリアルを構築するためにのみ使用されるので、ほとんどの開発者はこれに直接アクセスする必要はありませんでした。この機能は XRCameraSubsystem
に移動しました。
点群
ARPointCloud の positions、confidenceValues、identifiers の各プロパティが変更され、NativeArray を返さなくなりました。ARPointCloud
がこれらの NativeArray
に格納されているメモリを管理するので、呼び出し元が認識できるのは NativeSlice
だけになります (つまり、NativeArray
の Dispose を実行することはできません)。
さらに、これらの配列は必ずしも存在するわけではありません。以前は、NativeArray<T>.IsCreated
を使用して、これらが存在するかどうかを確認できました。NativeSlice
には IsCreated
プロパティがないため、これらのプロパティは null 許容になりました。
フェイストラッキング
ARFaceManager の supported
プロパティが削除されました。フェイストラッキングがサポートされていない場合、マネージャーのサブシステムは null になります。他のマネージャーにはこのプロパティがないため、一貫性を持たせるためにこの変更が行われました。マネージャーを有効にした後にマネージャーのサブシステムが null の場合、通常、そのサブシステムがサポートされていないことを意味します。
Reference Point から Anchor に名前を変更
業界標準用語に合わせるために、"Reference Point (参照位置)" から "Anchor (アンカー)" に名称が変更されました。
古いクラス | 新しいクラス |
---|---|
ARReferencePointManager |
ARAnchorManager |
ARReferencePoint |
ARAnchor |
古い参照位置 API を使用した既存のプロジェクトを開くと、スクリプトを新しい API に自動的に更新するオプションが表示されます。