تعرَّف على كيفية استخدام واجهة برمجة التطبيقات 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 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
.