Guida per gli sviluppatori dei posizionamenti istantanei per la piattaforma AR

Scopri come utilizzare l'API Instant Placement o i raycast persistenti nelle tue app.

Prerequisiti

Prima di procedere, assicurati di conoscere i concetti fondamentali dell'AR e come configurare una sessione ARCore.

Nomi dei concetti

I nomi di determinati concetti e metodi possono variare tra AR Foundation e l'SDK ARCore per Unity. Questi sono elencati nella tabella seguente per riferimento futuro.

Prerequisiti

Questa guida presuppone che tu abbia già installato e configurato Unity. In caso contrario, consulta la guida introduttiva alle Estensioni ARCore per AR Foundation per conoscere la procedura di installazione e configurazione.

Configurare una nuova sessione con ARRaycastManager

Il posizionamento istantaneo (raycast persistenti) è disponibile immediatamente con il pacchetto AR Foundation. Per configurare la scena, segui questi passaggi.

  1. Aggiungi gli oggetti di gioco predefiniti XR Origin e AR Session.

  2. Aggiungi il componente AR Raycast Manager all'oggetto di gioco XR Origin.

Quando Raycast Prefab non è nullo, ARRaycastManager inizializzerà il prefab e sincronizzerà automaticamente la sua posa con la posa di ARRaycast.

  1. Aggiungi gli oggetti di gioco predefiniti XR Origin e AR Session.

  2. Aggiungi il componente AR Raycast Manager all'oggetto di gioco XR Origin.

Quando Raycast Prefab non è nullo, ARRaycastManager inizializzerà il prefab e sincronizzerà automaticamente la sua posa con la posa di ARRaycast.

Posiziona un oggetto

In una nuova sessione ARCore, esegui un test di corrispondenza utilizzando ARRaycastManager.AddRaycast(Vector2, float).

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.
        
    }
}

Monitorare lo stato del monitoraggio ARRaycast

Se ARCore ha una posa 3D accurata, ARRaycast.trackingState sarà Tracking. In caso contrario, inizierà con Limited e passerà a Tracking quando ARCore avrà una posa 3D accurata. Una volta che lo stato di monitoraggio diventa Tracking, non tornerà a Limited.