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

Kendi uygulamalarınızda Anında Yerleşim API'sini veya kalıcı ışın izlemeyi 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 kavram ve yöntemlerin adları, AR Foundation ile Unity için ARCore SDK'sı arasında farklılık gösterebilir. Bunlar, kolay referans için aşağıdaki tabloda listelenmiştir.

Ön koşullar

Bu kılavuzda, Unity'yi zaten yükleyip yapılandırdığınız varsayılmaktadır. Yüklü değilse 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 oturum yapılandırın

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

  1. Önceden tanımlanmış oyun nesnelerini XR Origin ve AR Session ekleyin.

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

Raycast Prefab null olmadığında ARRaycastManager, prefab'ı örneklendirir ve pozunu ARRaycast'in pozuyla otomatik olarak senkronize eder.

  1. Önceden tanımlanmış oyun nesnelerini XR Origin ve AR Session ekleyin.

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

Raycast Prefab null olmadığında ARRaycastManager, prefab'ı örneklendirir ve pozunu ARRaycast'in 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 Tracking olur. Aksi takdirde, ARCore doğru bir 3D duruş elde ettiğinde Limited ile başlar ve Tracking olarak değişir. İzleme durumu Tracking olduğunda Limited durumuna geri dönmez.