docs.unity3d.com
    目次を表示する/隠す

    移行ガイド

    このガイドでは、AR Foundation 1.0 と 2.x の違いについて説明します。

    要約

    • シーン内の任意の場所に ARInputManager を追加します。
    • ARCameraManager を AR (拡張現実) カメラに追加します (これは ARCameraOptions に代わるものです)。
    • ARSessionOrigin の代わりに ARRaycastManager を介してレイキャストします。
    • 一部の TryGet/TryAdd/TryRemove API の名前が Get/Add/Remove に変更されました。
    • GetAllXXX は trackables プロパティになりました。
    • 追加、更新、削除イベントが 1 つのイベントに統合されました。このイベントには、追加、更新、削除されたすべてのトラッカブルのリストが含まれます。

    イベント

    AR Foundation 1.0 の各トラッカブルマネージャーでは、各トラッカブルの追加、更新、削除イベントを提供していました。2.x の各トラッカブルマネージャーでは、単一のイベントがフレームごとに 1 回だけ呼び出されます。このイベントには、前回のフレーム以降のすべての変更 (追加、更新、削除) が含まれます。

    例:

    1.0 2.0
    ARPlaneManager.planeAdded、ARPlaneManager.planeUpdated、ARPlaneManager.planeRemoved ARPlaneManager.planesChanged

    セッション相対データ

    AR Foundation 1.0 の多くのトラッカブルには "セッション相対データ" (BoundedPlane や XRReferencePoint など) がありました。これらに直接アクセスすることはできなくなりました。そのすべてのメンバーは、AR Foundation トラッカブルのプロパティになりました。

    例:

    トラッカブル 1.0 アクセサー 2.0 アクセサー
    ARPlane boundedPlane.Id trackableId

    Try の削除

    いくつかの API では、TryGet または TryAdd スタイルが使用されていました。参照型を処理するメソッドでは、Try プレフィックスが削除されました。

    例:

    1.0 2.0
    ARPlane.TryGetPlane(trackableId) ARPlane.GetPlane(trackableId)
    ARReferencePoint.TryAddReferencePoint ARReferencePoint.AddReferencePoint
    ARReferencePoint.TryAttachReferencePoint ARReferencePoint.AttachReferencePoint
    bool ARReferencePoint.TryRemoveReferencePoint bool ARReferencePoint.RemoveReferencePoint

    トラッカブルの列挙

    これまで、トラッカブルマネージャーには、すべてのトラッカブルの List を取得する方法がありました (ARPlaneManager.GetAllPlanes や ARReferencePointManager.GetAllReferencePoints など)。現在は、以下の例のように、foreach で使用できる trackables という共通のプロパティがあります。

    var planeManager = GetComponent<ARPlaneManager>();
    foreach (var plane in planeManager.trackables) {
        // 平面で何かを実行します
    }
    

    このプロパティは、ガベージを生成したり、ボックス化が発生したりしない TrackablesCollection を返します。

    ARSubsystemManager の削除

    2.0 では、ARSubsystemManager が削除されました。これまで、これは各サブシステムへのアクセスを提供するシングルトンでした (サブシステムとは、AR プラットフォームへの低レベルのインターフェースです)。ただし、一部のサブシステムは、ARPlaneManager など、MonoBehavior によっても同時に管理されていました。そのため、操作またはサブスクライブの対象となるオブジェクトについて混乱が生じていました。現在、各サブシステムには、そのサブシステムへのアクセスを提供するだけでなく、その生存期間も管理するマネージャーコンポーネントがあります。

    これまで ARSubsystemManager を使用していた場合は、いずれかのマネージャーで同様の機能を探してください。

    1.0 サブシステム 2.0 マネージャー
    XRPlaneSubsystem ARPlaneManager
    XRReferencePointSubsystem ARReferencePointManager
    XRDepthSubsystem ARPointCloudManager
    XRSessionSubsystem ARSession
    XRInputSubsystem ARInputManager (New)
    XRCameraSubsystem ARCameraManager (New)
    XRRaycastSubsystem ARRaycastManager (New)

    ARInputManager

    これまで、ポーズトラッキングは暗黙的に常に有効になっていました。現在、これを有効にするには、シーン内に ARInputManager コンポーネントが必要です。ARInputManager は、任意の GameObject にアタッチできます。

    ARInputManager を使用すると、入力トラッキングが有効になります。以前と同様に、TrackedPoseDriver ではポーズデータが使用されます。

    ARCameraManager と ARCameraOptions

    ARCameraManager を使用すると、XRCameraSubsystem が有効になります。これがないと、背景レンダリングを使用したり、ライトの推定情報を取得したりすることができません。このコンポーネントは Unity カメラに配置する必要があります。通常は、ARSessionOrigin の親であり、背景レンダリングを実行するカメラに配置します。

    ARCameraBackground には、ARCameraManager コンポーネントが必要になりました。

    以前は ARCameraOptions コンポーネントにあったオプション (フォーカスモードやライト推定モードなど) は、現在、ARCameraManager にあります。ARCameraOptions にはなくなりました。

    ARPointCloudManager

    1.0 では、ARPointCloudManager は単一の点群を管理していました。現在は、他のトラッカブルマネージャーと同様に、点群のコレクションを管理できるようになりました。ARCore や ARKit などの一部の AR プラットフォームには、現在も単一の点群しかありません。ただし、他のプラットフォーム (将来的にサポート) では、複数の点群が生成されます。

    その結果、ARPointCloudManager.pointCloud プロパティはなくなりました。trackables プロパティを反復処理することで、他のトラッカブルマネージャーと同様に点群を列挙できます。

    ARRaycastManager

    レイキャスティング API は以前と同じですが、新しいコンポーネントである ARRaycastManager に移動しました。以前は ARSessionOrigin にありました。レイキャストを実行する必要がある場合は、ARSessionOrigin と同じ GameObject に ARRaycastManager がアタッチされていることを確認し、そのコンポーネントで Raycast メソッドを使用します。

    トップに戻る
    Copyright © 2023 Unity Technologies — 商標と利用規約
    • 法律関連
    • プライバシーポリシー
    • クッキー
    • 私の個人情報を販売または共有しない
    • Your Privacy Choices (Cookie Settings)