تعرَّف على كيفية استخدام واجهة برمجة التطبيقات Instant Placement API أو عمليات بث الأشعة المستمرة في تطبيقاتك.
المتطلبات الأساسية
احرص على فهم مفاهيم الواقع المعزّز الأساسية وكيفية ضبط جلسة ARCore قبل المتابعة.
أسماء المفاهيم
قد تختلف أسماء بعض المفاهيم والأساليب بين AR Foundation و حزمة تطوير البرامج (SDK) لـ ARCore في Unity. تم إدراج هذه الشروط في الجدول أدناه لتسهيل الرجوع إليها.
AR Foundation | حزمة تطوير البرامج (SDK) لـ ARCore في Unity |
عمليات بث أشعة مستمرة | موضع إعلان فوري |
ARRaycastManager.AddRaycast(Vector2, float)
|
Frame.RaycastInstantPlacement(float, float, float, out TrackableHit)
|
ARRaycast
|
TrackableHit
|
(لا يتوفّر ما يعادله) | InstantPlacementPoint
|
ARRaycast.trackingState
|
InstantPlacementPointTrackingMethod
|
المتطلبات الأساسية
يفترض هذا الدليل أنّك سبق لك تثبيت Unity وضبطه. إذا لم يكن الأمر كذلك، اطّلِع على البدء باستخدام إضافات ARCore لإطار عمل AR Foundation لخطوات التثبيت والإعداد.
ضبط جلسة جديدة باستخدام ARRaycastManager
تتوفّر ميزة "الموقع الفوري" (عمليات بث أشعة مستمرة) بشكل تلقائي مع حزمة AR Foundation. اتّبِع الخطوات التالية لإعداد المشهد.
AR Foundation 4.x
أضِف عناصر اللعبة المحدّدة مسبقًا AR Session Origin و AR Session.
أضِف المكوّن AR Raycast Manager إلى عنصر اللعبة AR Session Origin.
عندما لا يكون Raycast Prefab فارغًا، ARRaycastManager
ستُنشئ النموذج المُعدّ مسبقًا وستُزامن تلقائيًا وضعه مع وضع
ARRaycast
.
AR Foundation 5.x
أضِف عناصر اللعبة المحدّدة مسبقًا XR Origin و AR Session.
أضِف المكوّن 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
.