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