دليل مطوّري مواضع الإعلانات الفورية لمؤسسة AR Foundation

تعرَّف على كيفية استخدام واجهة برمجة التطبيقات Instant Placement API أو عمليات بث الأشعة المستمرة في تطبيقاتك.

المتطلبات الأساسية

تأكَّد من فهم مفاهيم الواقع المعزّز الأساسية وكيفية ضبط جلسة ARCore قبل المتابعة.

أسماء المفاهيم

قد تختلف أسماء بعض المفاهيم والأساليب بين AR Foundation و حزمة تطوير البرامج (SDK) لـ ARCore في Unity. تم إدراج هذه الشروط في الجدول أدناه لتسهيل الرجوع إليها.

المتطلبات الأساسية

يفترض هذا الدليل أنّك سبق لك تثبيت Unity وضبطه. إذا لم يكن الأمر كذلك، اطّلِع على البدء باستخدام إضافات ARCore لإطار عمل AR Foundation لخطوات التثبيت والإعداد.

ضبط جلسة جديدة باستخدام ARRaycastManager

تتوفّر ميزة "الموقع الفوري" (عمليات بث أشعة مستمرة) بشكل تلقائي مع حزمة AR Foundation. اتّبِع الخطوات التالية لإعداد المشهد.

  1. أضِف عناصر اللعبة المحدّدة مسبقًا XR Origin و AR Session.

  2. أضِف المكوّن AR Raycast Manager إلى عنصر اللعبة XR Origin.

عندما لا يكون Raycast Prefab فارغًا، ARRaycastManager ستُنشئ النموذج المُعدّ مسبقًا وستُزامن تلقائيًا وضعه مع وضع ARRaycast.

  1. أضِف عناصر اللعبة المحدّدة مسبقًا XR Origin و AR Session.

  2. أضِف المكوّن AR Raycast Manager إلى عنصر اللعبة XR Origin.

عندما لا يكون Raycast Prefab فارغًا، ARRaycastManager ستُنشئ النموذج المُعدّ مسبقًا وستُزامن تلقائيًا وضعه مع وضع ARRaycast.

وضع عنصر

في جلسة ARCore جديدة، أجرِ اختبارًا للعناصر التي تم رصدها باستخدام 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.
        
    }
}

مراقبة حالة تتبُّع ARRaycast

إذا كان لدى ARCore وضع ثلاثي الأبعاد دقيق، سيظهر ARRaycast.trackingState بدلاً من Tracking. بخلاف ذلك، سيبدأ برمز Limited وينتقل إلى رمز Tracking بعد أن تحصل تقنية ARCore على وضع ثلاثي الأبعاد دقيق. بعد أن تصبح حالة التتبّع Tracking، لن تعود إلى Limited.