AR Foundation için Anında Yerleşim geliştirici kılavuzu

Anında Yerleştirme API'si veya kalıcı ışın gönderimleri özelliğini kendi uygulamalarınızda nasıl kullanacağınızı öğrenin.

Ön koşullar

Devam etmeden önce temel AR kavramlarını ve ARCore oturumunu nasıl yapılandıracağınızı anladığınızdan emin olun.

Kavram adları

Belirli kavramların ve yöntemlerin adları AR Foundation ile Unity için ARCore SDK'sında farklılık gösterebilir. Bunlar, kolayca başvurabilmeniz için aşağıdaki tabloda listelenmiştir.

AR Foundation Unity için ARCore SDK'sı
Kalıcı ışın yayınları Anında Yerleştirme
ARRaycastManager.AddRaycast(Vector2, float) Frame.RaycastInstantPlacement(float, float, float, out TrackableHit)
ARRaycast TrackableHit
(Eşdeğeri yok) InstantPlacementPoint
ARRaycast.trackingState InstantPlacementPointTrackingMethod

Ön koşullar

Bu kılavuzda, Unity'yi zaten yükleyip yapılandırdığınız varsayılır. Aksi takdirde, yükleme ve kurulum adımları için AR Foundation için ARCore Uzantıları'nı kullanmaya başlama başlıklı makaleyi inceleyin.

ARRaycastManager ile yeni bir oturum yapılandırma

Anında yerleştirme (kalıcı ışın yayınları), AR Foundation paketiyle birlikte kullanıma hazırdır. Sahnenizi ayarlamak için aşağıdaki adımları uygulayın.

AR Foundation 4.x

  1. Önceden tanımlanmış oyun nesneleri AR Session Origin ve AR Session'yi ekleyin.

  2. AR Raycast Manager bileşenini AR Session Origin oyun nesnesine ekleyin.

Raycast Prefab boş olmadığında ARRaycastManager, prefab'ı oluşturur ve pozunu ARRaycast'ın pozuyla otomatik olarak senkronize eder.

AR Foundation 5.x

  1. Önceden tanımlanmış oyun nesneleri XR Origin ve AR Session'yi ekleyin.

  2. AR Raycast Manager bileşenini XR Origin oyun nesnesine ekleyin.

Raycast Prefab boş olmadığında ARRaycastManager, prefab'ı oluşturur ve pozunu ARRaycast'ın pozuyla otomatik olarak senkronize eder.

AR Foundation 6.x

  1. Önceden tanımlanmış oyun nesneleri XR Origin ve AR Session'yi ekleyin.

  2. AR Raycast Manager bileşenini XR Origin oyun nesnesine ekleyin.

Raycast Prefab boş olmadığında ARRaycastManager, prefab'ı oluşturur ve pozunu ARRaycast'ın pozuyla otomatik olarak senkronize eder.

Nesne yerleştirme

Yeni bir ARCore oturumunda ARRaycastManager.AddRaycast(Vector2, float) kullanarak isabet testi yapın.

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 izleme durumunu izleme

ARCore'un doğru bir 3D duruşu varsa ARRaycast.trackingState simgesi Tracking olur. Aksi takdirde, Limited ile başlar ve ARCore doğru bir 3D duruşa sahip olduğunda Tracking ile devam eder. İzleme durumu Tracking olduktan sonra Limited durumuna geri dönmez.