Entwicklerleitfaden für Instant Placements für AR Foundation

Hier erfahren Sie, wie Sie die Instant Placement APIoder persistente Raycastsin Ihren eigenen Apps verwenden.

Vorbereitung

Sie sollten die grundlegenden AR-Konzepte und die Konfiguration einer ARCore-Sitzung kennen, bevor Sie fortfahren.

Konzeptnamen

Die Namen bestimmter Konzepte und Methoden können sich zwischen AR Foundation und dem ARCore SDK for Unity unterscheiden. Sie sind in der folgenden Tabelle aufgeführt.

AR Foundation ARCore SDK for Unity
Persistente Raycasts Instant Placement
ARRaycastManager.AddRaycast(Vector2, float) Frame.RaycastInstantPlacement(float, float, float, out TrackableHit)
ARRaycast TrackableHit
(Keine Entsprechung) InstantPlacementPoint
ARRaycast.trackingState InstantPlacementPointTrackingMethod

Vorbereitung

In diesem Leitfaden wird davon ausgegangen, dass Sie Unity bereits installiert und konfiguriert haben. Wenn nicht, finden Sie unter Erste Schritte mit ARCore Extensions for AR Foundation die Installations- und Konfigurationsschritte.

Neue Sitzung mit ARRaycastManager konfigurieren

Instant Placement (persistente Raycasts) ist mit dem AR Foundation-Paket sofort verfügbar. Führen Sie die folgenden Schritte aus, um Ihre Szene einzurichten.

AR Foundation 4.x

  1. Fügen Sie die vordefinierten Spielobjekte AR Session Origin und AR Session hinzu.

  2. Fügen Sie dem AR Session Origin Spielobjekt die AR Raycast Manager Komponente hinzu.

Wenn Raycast Prefab nicht null ist, ARRaycastManager instanziiert das Prefab und synchronisiert seine Pose automatisch mit der Pose von ARRaycast.

AR Foundation 5.x

  1. Fügen Sie die vordefinierten Spielobjekte XR Origin und AR Session hinzu.

  2. Fügen Sie dem XR Origin Spielobjekt die Komponente AR Raycast Manager hinzu.

Wenn Raycast Prefab nicht null ist, ARRaycastManager instanziiert das Prefab und synchronisiert seine Pose automatisch mit der Pose von ARRaycast.

AR Foundation 6.x

  1. Fügen Sie die vordefinierten Spielobjekte XR Origin und AR Session hinzu.

  2. Fügen Sie dem XR Origin Spielobjekt die Komponente AR Raycast Manager hinzu.

Wenn Raycast Prefab nicht null ist, ARRaycastManager instanziiert das Prefab und synchronisiert seine Pose automatisch mit der Pose von ARRaycast.

Objekt platzieren

Führen Sie in einer neuen ARCore-Sitzung eine Trefferprüfung mit ARRaycastManager.AddRaycast(Vector2, float) aus.

public ARRaycastManager RaycastManager; // set from the Editor Inspector.

void Update()
{
    Touch touch;
    if (Input.touchCount < 1 || (touch = Input.GetTouch(0)).phase != TouchPhase.Began)
    {
        return;
    }

    if (EventSystem.current.IsPointerOverGameObject(touch.fingerId))
    {
        return;
    }

    ARRaycast raycast = RaycastManager.AddRaycast(touch.position, _estimateDistance);
    if (raycast != null)
    {
        // You can instantiate a 3D object here if you haven’t set Raycast Prefab in the scene.
        
    }
}

ARRaycast-Trackingstatus überwachen

Wenn ARCore eine genaue 3D-Pose hat, ist ARRaycast.trackingState gleich Tracking. Andernfalls beginnt es mit Limited und wechselt zu Tracking, sobald ARCore eine genaue 3D-Pose hat. Sobald der Trackingstatus Tracking, wird er nicht mehr zu Limited zurückkehren.