تعرَّف على كيفية استخدام Cloud Anchors في تطبيقاتك.
المتطلبات الأساسية
احرص على فهم مفاهيم الواقع المعزّز الأساسية وكيفية ضبط جلسة ARCore قبل المتابعة.
إذا كنت مبتدئًا في استخدام ميزة "محطات الربط في السحابة الإلكترونية"، احرص على فهم آلية عمل محطات الربط ومحطات الربط في السحابة الإلكترونية.
تفعيل واجهة برمجة تطبيقات ARCore
قبل استخدام ميزة "تثبيتات السحابة الإلكترونية" في تطبيقك، عليك أولاً تفعيل واجهة برمجة التطبيقات ARCore API في تطبيقك.
تفعيل إمكانات Cloud Anchor في إعدادات الجلسة
بعد تفعيل وظائف Cloud Anchors في تطبيقك، يمكنك تفعيل إمكانات Cloud Anchors في ضبط جلسة الواقع المعزّز على تطبيقك حتى يتمكّن من الاتصال بواجهة برمجة تطبيقات ARCore:
استضافة Cloud Anchor
تبدأ عملية الاستضافة بمكالمة إلى ARAnchorManager.HostCloudAnchorAsync()
. ستحمِّل أداة ARCore البيانات المرئية ووضعيات الجهاز ووضعية العنصر الأساسي إلى واجهة برمجة التطبيقات ARCore API. بعد ذلك، تعالج واجهة برمجة التطبيقات هذه المعلومات لإنشاء خريطة ميزات ثلاثية الأبعاد، ما يؤدي في النهاية إلى عرض معرّف Cloud Anchor فريد للارتساء إلى الجهاز.
يمكنك أيضًا إطالة مدة عمل العنصر الأساسي المستضاف باستخدام ARCore Cloud Anchor Management API.
يجب أن يتّبع تطبيقك الخطوات التالية لإكمال استضافة "نقطة ارتساء السحابة الإلكترونية":
- يمكنك الاتصال بالرقم
ARAnchorManager.HostCloudAnchorAsync()
. - ابدأ دالة معالجة متزامنة للانتظار إلى أن يقدّم الوعد نتيجة. اطّلِع على الوظائف المتكرّرة في Unity للحصول على معلومات إضافية.
- تحقّق من حالة النتيجة لتحديد ما إذا نجحت العملية أو تفسير رمز الخطأ في حال تعذّر إكمالها.
- شارِك مع العملاء الآخرين معرّف Cloud Anchor الناتج، واستخدِمه لحلّ Cloud Anchor باستخدام
ARAnchorManagerExtensions.ResolveCloudAnchorAsync()
.
التحقّق من جودة ربط نقاط العناصر
يشير ARCoreExtensions.FeatureMapQuality
إلى جودة نقاط الميزات التي رصدها ARCore في الثواني القليلة السابقة من وضع كاميرا معيّن. يتم بشكل عام حلّ نقاط الربط في السحابة الإلكترونية المستضافة باستخدام ميزات ذات جودة أعلى بدقة أكبر. استخدِم ARAnchorManagerExtensions.EstimateFeatureMapQualityForHosting()
للحصول على تقدير لجودة خريطة العناصر لموقف معيّن للكاميرا.
القيمة | الوصف |
---|---|
Insufficient |
جودة نقاط الميزات التي تم تحديدها من الوضع خلال الثواني القليلة السابقة منخفضة. تشير هذه الحالة إلى أنّه من المحتمل أن تواجه ARCore صعوبة أكبر في حلّ Cloud Anchor. اطلب من المستخدم تحريك الجهاز حتى يمكن رؤية موضع Cloud Anchor المطلوب استضافته من زوايا مختلفة. |
Sufficient |
من المرجّح أن تكون جودة نقاط العناصر المحدّدة من الوضع في الثواني القليلة السابقة كافية لكي يتمكّن ARCore من تحديد نقطة ارتساء في السحابة الإلكترونية بنجاح، على الرغم من أنّه من المرجّح أن تنخفض دقة الوضع المحدّد. اطلب من المستخدم تحريك الجهاز حتى يمكن رؤية موضع Cloud Anchor المطلوب استضافته من زوايا مختلفة. |
Good |
من المرجّح أن تكون جودة نقاط العناصر المحدّدة من الوضع في الثواني القليلة السابقة كافية لكي يتمكّن ARCore من حلّ نقطة تثبيت السحابة الإلكترونية بدرجة عالية من الدقة. |
التعامل بشكل نهائي مع إعلان ارتساء تمت استضافته في السابق
يُرجى الاتصال برقم ARAnchorManagerExtensions.ResolveCloudAnchorAsync()
لحلّ مشكلة "نقطة تثبيت السحابة الإلكترونية" المستضافة. تقارن واجهة برمجة التطبيقات ARCore API بشكل دوري بين العناصر المرئية من المشهد وخريطة العناصر الثلاثية الأبعاد للعنصر الأساسي لتحديد موضع المستخدم واتجاهه بالنسبة إلى العنصر الأساسي. عند العثور على مطابقة، تعرض واجهة برمجة التطبيقات وضع Cloud Anchor المستضافة.
يمكنك بدء عمليات التحديد لعدة عناصر Cloud Anchors بالتسلسل. يمكن أن يتوفر ما يصل إلى 40 عملية متزامنة على Cloud Anchor في آنٍ واحد.
إلغاء عملية أو إزالة عنصر Cloud Anchor
يتمّ استدعاء ARCloudAnchor.OnDestroy()
تلقائيًا عند إزالة المكوّن ARCloudAnchor
من عنصر اللعبة الذي يحتوي عليه. سيؤدي ذلك إلى فصل عنصر Cloud Anchor الأصلي وإطلاقه.
التحقّق من حالة النتيجة لعملية Cloud Anchor
استخدِم CloudAnchorState للتحقّق من حالة نتيجة عملية الاستضافة أو التحديد، بما في ذلك الأخطاء.
القيمة | الوصف |
---|---|
ErrorResolvingCloudIdNotFound |
تعذّر حلّ المشكلة لأنّ واجهة برمجة التطبيقات ARCore API لم تتمكّن من العثور على معرّف Cloud Anchor المقدَّم. |
ErrorHostingDatasetProcessingFailed |
تعذّرت الاستضافة بسبب عدم تمكّن الخادم من معالجة مجموعة البيانات الخاصة بعلامة الارتساء المحدّدة بنجاح. يُرجى إعادة المحاولة بعد أن يجمع الجهاز المزيد من البيانات من البيئة. |
ErrorHostingServiceUnavailable |
تعذّر الوصول إلى واجهة برمجة التطبيقات ARCore API. وقد يحدث ذلك نتيجة لعدة أسباب. قد يكون الجهاز في وضع الطيران أو قد لا يكون متصلاً بالإنترنت. قد تكون مهلة الطلب المرسَل إلى الخادم قد انتهت بدون تلقّي أي استجابة. قد يكون هناك اتصال ضعيف بالشبكة أو عدم توفّر نظام أسماء النطاقات (DNS) أو مشاكل في جدار الحماية أو أي شيء آخر قد يؤثر في قدرة الجهاز على الاتصال بواجهة برمجة التطبيقات ARCore API. |
ErrorInternal |
اكتملت مهمة استضافة أو حلّ لهذه النقطة الأساسية بظهور خطأ داخلي. من المفترض ألا يحاول التطبيق معالجة هذا الخطأ. |
ErrorNotAuthorized |
لا يمكن للتطبيق التواصل مع واجهة برمجة التطبيقات ARCore API بسبب تفويض غير صالح. انتقِل إلى إعدادات المشروع > XR > إضافات ARCore للاطّلاع على استراتيجية تفويض صالحة. |
ErrorResolvingPackageTooNew |
تعذّر حلّ Cloud Anchor لأنّ حزمة إضافات ARCore المُستخدَمة لحل Cloud Anchor أحدث من الإصدار المستخدَم لاستضافتها وغير متوافقة معه. |
ErrorResolvingPackageTooOld |
تعذّر حلّ Cloud Anchor لأنّ حزمة ARCore Extensions المستخدَمة لحلّ Cloud Anchor أقدم من الإصدار المستخدَم لاستضافته وغير متوافقة معه. |
ErrorResourceExhausted |
استنفد التطبيق حصة الطلبات المخصّصة لمشروع Google Cloud المحدّد. يجب طلب حصة إضافية لواجهة برمجة التطبيقات ARCore لمشروعك من Google Developers Console. |
Success |
اكتملت مهمة الاستضافة أو الحلول الخاصة بهذا الارتساء بنجاح. |
حصص واجهة برمجة التطبيقات لطلبات المضيف والبحث
تتضمّن واجهة برمجة التطبيقات ARCore API الحصص التالية لمعدل نقل بيانات الطلبات:
نوع الحصة | الحد الأقصى | المدة | ينطبق على |
---|---|---|---|
عدد نقاط الربط | غير محدودة | لا ينطبق | المشروع |
طلبات استضافة المحتوى الأساسي | 30 | دقيقة | عنوان IP والمشروع |
طلبات حلّ التناقضات | 300 | دقيقة | عنوان IP والمشروع |
أفضل الممارسات لتوفير تجربة مستخدم جيدة
يُرجى توجيه المستخدمين إلى تنفيذ ما يلي لضمان تقديم تجربة جيدة لهم في تطبيقك:
- انتظِر بضع ثوانٍ بعد بدء الجلسة قبل محاولة استضافة علامة ارتساء (من خلال وضع أحد الكائنات، وما إلى ذلك). يمنح ذلك عملية التتبّع بعض الوقت حتى تستقرّ.
- عند اختيار موقع جغرافي لاستضافة العنصر الأساسي، حاوِل العثور على منطقة تتضمّن عناصر مرئية يمكن تمييزها بسهولة عن بعضها. للحصول على أفضل النتائج، تجنَّب الأسطح العاكسة أو الأسطح التي تفتقر إلى الميزات المرئية، مثل الجدران البيضاء الفارغة.
اضبط الكاميرا على نقطة الاهتمام وحرك الجهاز حول نقطة الاهتمام لتصوير البيئة من زوايا مختلفة، مع الحفاظ على المسافة نفسها تقريبًا أثناء ذلك. سيساعد ذلك في التقاط المزيد من البيانات المرئية وتحسين الدقة.
تأكَّد من توفُّر إضاءة كافية في البيئة الواقعية أثناء استضافة "محطات الربط في السحابة الإلكترونية" وتحديد مواقعها.
سياسة الإيقاف النهائي
- تنطبق سياسة إيقاف Cloud Anchor API نهائيًا على التطبيقات التي تم إنشاؤها باستخدام الإصدار 1.12.0 من حزمة تطوير البرامج (SDK) لـ ARCore أو إصدار أحدث.
- يتعذّر على التطبيقات التي تم إنشاؤها باستخدام الإصدار 1.11.0 من حزمة تطوير البرامج (SDK) من ARCore أو إصدار أقدم من استضافة Cloud Anchors أو حلها، وذلك بسبب استخدام حزمة SDK لواجهة برمجة تطبيقات ARCore قديمة ومتوقّفة نهائيًا.
الخطوات التالية
- اطّلِع على مستندات مرجعية لـ "إضافات ARCore" لإطار عمل AR Foundation للتعرّف على المزيد من الطرق لاستخدام ARCore في تطبيقك.