Guide du développeur sur l'emplacement instantané pour AR Foundation

Découvrez comment utiliser l' API Instant Placement ou les raycasts persistants dans vos propres applications.

Prérequis

Avant de continuer, assurez-vous de bien comprendre les concepts fondamentaux de la RA et de savoir comment configurer une session ARCore.

Noms des concepts

Les noms de certains concepts et méthodes peuvent différer entre AR Foundation et le SDK ARCore pour Unity. Ils sont répertoriés dans le tableau ci-dessous pour plus de commodité.

AR Foundation SDK ARCore pour Unity
Raycasts persistants Instant Placement
ARRaycastManager.AddRaycast(Vector2, float) Frame.RaycastInstantPlacement(float, float, float, out TrackableHit)
ARRaycast TrackableHit
(Aucune équivalence) InstantPlacementPoint
ARRaycast.trackingState InstantPlacementPointTrackingMethod

Prérequis

Ce guide suppose que vous avez déjà installé et configuré Unity. Dans le cas contraire, consultez la section Premiers pas avec les extensions ARCore pour AR Foundation pour connaître les étapes d'installation et de configuration.

Configurer une nouvelle session avec ARRaycastManager

Instant Placement (raycasts persistants) est disponible immédiatement avec le package AR Foundation. Suivez ces étapes pour configurer votre scène.

AR Foundation 4.x

  1. Ajoutez les objets de jeu prédéfinis AR Session Origin et AR Session.

  2. Ajoutez le composant AR Raycast Manager à l'objet de jeu AR Session Origin.

Lorsque Raycast Prefab n'est pas nul, ARRaycastManager instancie le préfabriqué et synchronise automatiquement sa pose avec celle de ARRaycast.

AR Foundation 5.x

  1. Ajoutez les objets de jeu prédéfinis XR Origin et AR Session.

  2. Ajoutez le AR Raycast Manager composant à l' XR Origin objet de jeu.

Lorsque Raycast Prefab n'est pas nul, ARRaycastManager instancie le préfabriqué et synchronise automatiquement sa pose avec celle de ARRaycast.

AR Foundation 6.x

  1. Ajoutez les objets de jeu prédéfinis XR Origin et AR Session.

  2. Ajoutez le AR Raycast Manager composant à l' XR Origin objet de jeu.

Lorsque Raycast Prefab n'est pas nul, ARRaycastManager instancie le préfabriqué et synchronise automatiquement sa pose avec celle de ARRaycast.

Placer un objet

Dans une nouvelle session ARCore, effectuez un test de positionnement à l'aide de 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.
        
    }
}

Surveiller l'état de suivi ARRaycast

Si ARCore dispose d'une pose 3D précise, le ARRaycast.trackingState sera Tracking. Sinon, il commencera par Limited et passera à Tracking une fois qu'ARCore aura une pose 3D précise. Une fois que l'état de suivi devient Tracking, il ne revient pas à Limited.