يقدّم هذا الدليل نظرة عامة على عملية التطوير باستخدام Unity لمنصة Android XR. يتوافق Android XR مع الأدوات والميزات المألوفة التي تتوقّعها من Unity، وبما أنّ توافق Unity مع Android XR يستند إلى OpenXR، فإنّ العديد من الميزات الموضّحة في نظرة عامة حول OpenXR تتوافق أيضًا مع Unity.
اتّبِع هذا الدليل للتعرّف على ما يلي:
- توافق Unity مع Android XR
- أساسيات Unity XR
- تطوير تطبيقات ونشرها على Android XR
- حِزم Unity لنظام التشغيل Android XR
- Unity OpenXR: حزمة Android XR
- إضافات Android XR لـ Unity
- اعتبارات الميزات والتوافق
- الإدخال والتفاعل
توافق Unity مع Android XR
عند إنشاء تطبيقات Unity لنظام Android XR، يمكنك الاستفادة من أدوات وإمكانات الواقع المختلط في أحدث إصدارات Unity 6. ويشمل ذلك نماذج الواقع المختلط التي تستخدم XR Interaction Toolkit وAR Foundation وOpenXR Plugin لمساعدتك في البدء بسرعة. عند إنشاء تطبيقات باستخدام Unity لنظام Android XR، ننصحك باستخدام Universal Render Pipeline (URP) كخط أنابيب العرض وVulkan كواجهة برمجة تطبيقات الرسومات. تتيح لك هذه الميزات الاستفادة من بعض ميزات الرسومات في Unity، والتي لا تتوافق إلا مع Vulkan. راجِع دليل إعداد المشروع للحصول على مزيد من المعلومات حول كيفية ضبط هذه الإعدادات.
أساسيات الواقع الممتد في Unity
إذا كنت مبتدئًا في Unity أو تطوير تجارب الواقع الممتد، يمكنك الرجوع إلى دليل الواقع الممتد في Unity للتعرّف على المفاهيم الأساسية لسير عمل الواقع الممتد. يحتوي دليل XR على معلومات حول:
- إضافات موفّر الواقع الممتد، بما في ذلك Unity OpenXR: Android XR وAndroid XR Extensions for Unity
- حِزم دعم الواقع الممتد لإضافة ميزات إضافية على مستوى التطبيق
- دليل بنية الواقع الممتد يوضّح حزمة تكنولوجيا الواقع الممتد وأنظمة الواقع الممتد الفرعية في Unity
- إعداد مشروع XR
- إنشاء تطبيقات XR وتشغيلها
- إرشادات حول رسومات الواقع الممتد، بما في ذلك Universal Render Pipeline، والعرض المجسم، والعرض البؤري، ومناطق العرض المتعدد، وتوقيت إطارات الواقع الافتراضي
- إرشادات صوتية في تجارب الواقع الممتد، بما في ذلك إتاحة أدوات تحويل الصوت إلى صوت مكاني
تطوير تطبيقات Android ونشرها
توفّر Unity مستندات تفصيلية حول تطوير التطبيقات وإنشائها ونشرها على Android، وتغطّي مواضيع مثل أذونات Android في Unity وإعدادات الإصدار على Android وإنشاء تطبيقك على Android والنشر على Google Play.
حِزم Unity لنظام التشغيل Android XR
تتوفّر حزمتان تتيحان إنشاء تطبيقات Unity لأجهزة Android XR. كلتا الحزمتين عبارة عن مكوّنات إضافية لموفّر XR، ويمكن تفعيلها من خلال حزمة "إدارة المكوّنات الإضافية لـ XR" في Unity. يضيف مدير المكوّن الإضافي XR إعدادات المشروع لإدارة وتقديم المساعدة في التحميل والتهيئة والإعدادات ودعم الإصدارات للمكوّنات الإضافية XR. للسماح لتطبيقك بتنفيذ ميزات OpenXR في وقت التشغيل، يجب تفعيل هذه الميزات في المشروع من خلال "مدير المكوّنات الإضافية".
تعرض هذه الصورة مثالاً على المكان الذي يمكنك فيه تفعيل مجموعات الميزات هذه من خلال أداة التعديل في Unity.
Unity OpenXR Android XR
حزمة Unity OpenXR Android XR هي إضافة XR Plug-in تتيح استخدام Android XR في Unity. يوفّر هذا المكوّن الإضافي للواقع الممتد معظم وظائف Android XR المتوافقة مع Unity، ويتيح استخدام أجهزة Android XR في مشاريع AR Foundation. تم تصميم AR Foundation للمطوّرين الذين يريدون إنشاء تجارب واقع معزّز أو واقع مختلط. ويوفّر واجهة لميزات الواقع المعزّز، ولكنّه لا ينفّذ أي ميزات بنفسه. توفّر حزمة Unity OpenXR Android XR عملية التنفيذ. لبدء استخدام هذه الحزمة، اطّلِع على دليل الحزمة الذي يتضمّن دليل البدء.
إضافات Android XR لـ Unity
تكمّل إضافات Android XR لـ Unity حزمة Unity OpenXR Android XR، وتتضمّن ميزات إضافية لمساعدتك في إنشاء تجارب غامرة. ويمكن استخدامها بمفردها أو مع حزمة Unity OpenXR Android XR.
لبدء استخدام هذه الحزمة، اتّبِع دليل إعداد المشروع أو دليل البدء السريع لاستيراد حِزم Android XR Extensions لمحرّك الألعاب Unity.
اعتبارات الميزات والتوافق
يوضّح الجدول التالي الميزات المتوافقة مع حزمة Unity OpenXR: Android XR وحزمة Android XR Extensions for Unity، ويمكن استخدامه لتحديد الحزمة التي تتضمّن الميزات التي تحتاج إليها وأي اعتبارات متعلّقة بالتوافق.
الميزة |
Unity OpenXR: سلسلة ميزات Android XR |
سلسلة ميزات "إضافات Android XR" في Unity |
حالات الاستخدام والسلوك المتوقّع |
|---|---|---|---|
Android XR: جلسة الواقع المعزّز
|
Android XR (الإضافات): إدارة الجلسات
|
لاستخدام ميزات من أيّ من الحزمتين، يجب تفعيل ميزة "جلسة الواقع المعزّز" للحزمة. يمكنك تفعيل مجموعتَي الميزات في الوقت نفسه، وستتعامل الميزات الفردية مع التعارضات وفقًا لذلك. |
|
لا ينطبق |
لا ينطبق |
يُستخدَم تتبُّع الجهاز لتتبُّع موضع الجهاز وتدويره في المساحة الفعلية. يتعامل GameObject الخاص بـ XR Origin تلقائيًا مع تتبُّع الجهاز وتحويل العناصر القابلة للتتبُّع إلى نظام الإحداثيات في Unity باستخدام مكوّن XROrigin وتسلسل GameObject الهرمي مع "الكاميرا" وTrackedPoseDriver. |
|
Android XR: كاميرا الواقع المعزّز |
لا ينطبق |
توفّر هذه الميزة إمكانية تقدير الإضاءة وعرض المحتوى على كامل الشاشة. |
|
Android XR: مستوى الواقع المعزّز |
Android XR (الإضافات): الطائرة |
هاتان الميزتان متطابقتان، لذا استخدِم إحداهما. Android XR (الإضافات): تم تضمين Plane حتى يتمكّن المطوّرون من استخدام ميزتَي "تتبُّع العناصر" و"نقاط الارتكاز الثابتة" في Android XR (الإضافات) بدون الحاجة إلى الاعتماد على حزمة Unity OpenXR Android XR. في المستقبل، ستتم إزالة Android XR (الإضافات): Plane لصالح Android XR: AR Anchor. |
|
لا ينطبق |
Android XR (الإضافات): تتبُّع العناصر |
توفّر هذه الميزة إمكانية رصد العناصر وتتبُّعها في البيئة المحيطة، ويتم استخدامها مع مكتبة عناصر مرجعية. |
|
Android XR: AR Face
|
Android XR: تتبُّع تعابير الوجه
|
تتوفّر ميزة "عيون الأفاتار" من خلال ميزة "الواقع المعزّز: الوجه" في Android XR. الوصول إلى تعابير وجه المستخدم من خلال ميزة "تتبُّع الوجه" في Android XR يمكن استخدام هاتين الميزتين معًا. |
|
Android XR: AR Raycast
|
لا ينطبق |
تتيح لك هذه الميزة إطلاق شعاع وحساب نقطة التقاطع بين هذا الشعاع وعناصر التتبُّع المستوية أو عناصر التتبُّع المستندة إلى العمق التي يتم رصدها في البيئة المحيطة. |
|
Android XR: نقطة ارتكاز الواقع المعزّز |
Android XR (الإضافات): نقطة الارتكاز
|
تتضمّن كلتا الميزتين إمكانية استخدام نقاط الارتكاز المكانية ونقاط الارتكاز المستوية، لذا يمكنك استخدام إحدى الميزتين فقط. بالنسبة إلى نقاط الارتكاز الثابتة، استخدِم Android XR (الإضافات): Anchor. في المستقبل، ستتم إزالة ميزة "نقطة الارتكاز" في Android XR (الإضافات)، وستتوفّر جميع ميزات "نقطة الارتكاز" في Android XR: AR Anchor. |
|
Android XR: حجب الواقع المعزّز
|
لا ينطبق |
تتيح ميزة "الحجب" إخفاء محتوى الواقع المختلط في تطبيقك أو حجبه جزئيًا خلف عناصر في البيئة المحيطة. |
|
مقاييس الأداء |
مقاييس أداء Android XR |
لا ينطبق |
استخدِم هذه الميزة للوصول إلى مقاييس الأداء لأجهزة Android XR. |
توافُق طبقة التركيب (يجب توفُّر مكوّن OpenXR الإضافي وطبقة التركيب XR) |
Android XR: طبقة التركيب في وضع "الرؤية من خلال الجهاز"
|
استخدِم ميزة "دعم طبقة التركيب" في Unity لإنشاء طبقات تركيب أساسية (مثل المربّع والأسطوانة والإسقاط). Android XR: يمكن استخدام طبقة التركيب Passthrough لإنشاء طبقة Passthrough باستخدام شبكة مخصّصة، والقراءة من GameObject في Unity. |
|
التقديم البؤري (يجب تثبيت المكوّن الإضافي OpenXR)
|
Foveation (Legacy) |
تتيح هذه التقنية تسريع عملية العرض من خلال خفض درجة دقة المناطق في مجال الرؤية المحيطي للمستخدم. لا تتوافق ميزة العرض البؤري في Unity إلا مع التطبيقات التي تستخدم URP وVulkan. تتوافق ميزة "التركيز البؤري" (الإصدار القديم) في "إضافات Android XR لبرنامج Unity" أيضًا مع Built-in Render Pipeline وOpenGL ES. ننصحك باستخدام ميزة العرض البؤري في Unity عند الإمكان، ونشير إلى أنّه يُنصح باستخدام كلّ من URP وVulkan عند إنشاء تطبيقات Android XR. |
|
لا ينطبق |
Android XR: مساحة الإحداثيات غير المحدودة |
تضبط هذه الميزة وضع مصدر التتبُّع XRInputSubsystem على Unbounded. يشير Unbounded إلى أنّ XRInputSubsystem يتتبّع جميع InputDevices بالنسبة إلى مرساة عالمية يمكن أن تتغيّر. |
|
لا ينطبق |
وضع دمج البيئة |
تتيح لك هذه الميزة ضبط وضع دمج بيئة الواقع الممتد، الذي يتحكّم في كيفية دمج الصور الافتراضية مع البيئة المحيطة في العالم الحقيقي عند تفعيل ميزة "الرؤية المجسمة". |
الإدخال والتفاعل
يتوافق Android XR مع الإدخال الطبيعي المتعدد الوسائط.
بالإضافة إلى تتبُّع اليد والعين، يمكن استخدام الأجهزة الطرفية، مثل وحدات التحكّم 6DoF والماوس ولوحة المفاتيح الفعلية. ويعني ذلك أنّه من المتوقّع أن تتوافق تطبيقات Android XR مع التفاعل باستخدام اليد، ولا يمكن افتراض أنّ جميع الأجهزة ستتضمّن وحدات تحكّم.
ملفات التفاعل
تستخدم Unity ملف تعريف التفاعل لإدارة طريقة تواصل تطبيق XR مع أجهزة ومنصات XR المختلفة. تحدّد هذه الملفات المدخلات والمخرجات المتوقّعة لإعدادات الأجهزة المختلفة، ما يعزّز التوافق والوظائف المتسقة على مجموعة من المنصات. من خلال تفعيل ملفات تعريف التفاعل، يمكنك المساعدة في ضمان عمل تطبيق الواقع الممتد بشكل صحيح مع الأجهزة المختلفة، والحفاظ على ربط متّسق بين الإدخال والإخراج، والوصول إلى ميزات محدّدة في الواقع الممتد. لضبط ملف تعريف تفاعلي، اتّبِع الخطوات التالية:
- افتح نافذة إعدادات المشروع (القائمة: تعديل > إعدادات المشروع).
- انقر على إدارة المكوّنات الإضافية لتقنيات الواقع الممتد (XR) لتوسيع قسم المكوّنات الإضافية (إذا لزم الأمر).
- اختَر OpenXR في قائمة إضافات الواقع الممتد.
- في قسم ملفات تعريف التفاعل، انقر على الزر + لإضافة ملف تعريف.
- اختَر الملف الشخصي الذي تريد إضافته من القائمة.
التفاعل باليد
يتم توفير ميزة التفاعل باليد (XR_EXT_hand_interaction) من خلال OpenXR Plugin، ويمكنك عرض تخطيط جهاز <HandInteraction> في نظام الإدخال في Unity من خلال تفعيل ملف تعريف التفاعل باليد. استخدِم ملف التفاعل هذا لإدخال البيانات باليد، وهو متوافق مع أوضاع الحركات الأربعة المحدّدة في OpenXR: "القرص" و"النقر" و"التصويب" و "المسك". إذا كنت بحاجة إلى وظائف إضافية للتفاعل باستخدام اليد أو تتبُّع حركة اليد، يُرجى الرجوع إلى XR Hands في هذه الصفحة.
التفاعل من خلال تتبُّع حركة العين
تتوفّر ميزة التفاعل من خلال تتبُّع نظرات العين (XR_EXT_eye_gaze_interaction) من خلال OpenXR Plugin، ويمكنك استخدام هذا التصميم لاسترداد بيانات وضع العين (الموضع والتدوير) التي تعرضها الإضافة. مزيد من المعلومات حول التفاعل من خلال تتبُّع حركة العين في دليل OpenXR Input
التفاعل مع وحدة التحكّم
يتوافق Android XR مع ملف تعريف وحدة التحكّم Oculus Touch لوحدات التحكّم 6DoF. يوفّر OpenXR Plugin كلا الملفَين.
التفاعل باستخدام الماوس
يتم توفير ملف تعريف التفاعل مع الماوس في Android XR (XR_ANDROID_mouse_interaction)
من خلال "إضافات Android XR لبرنامج Unity". تعرض هذه السمة تخطيط جهاز <AndroidXRMouse> في نظام الإدخال في Unity.
التفاعل باستخدام وضعية اليد المفتوحة
يتيح المكوّن الإضافي OpenXR استخدام تفاعل وضعية اليد (XR_EXT_palm_pose)، الذي
يعرض تخطيط <PalmPose> ضمن نظام إدخال Unity.
لا يُقصد بوضعية اليد المفتوحة أن تكون بديلاً عن الإضافات أو الحِزم التي تتتبّع حركة اليد لحالات استخدام أكثر تعقيدًا، بل يمكن استخدامها لوضع محتوى مرئي خاص بالتطبيق، مثل صور الأفاتار. تتألف وضعية اليد المفتوحة من موضع اليد واتجاهها.
XR Hands
تتيح لك حزمة XR Hands الوصول إلى بيانات تتبُّع اليد باستخدام
XR_EXT_hand_tracking و
XR_FB_hand_tracking_aim، كما توفّر برنامج تضمين لتحويل بيانات مفاصل اليد من تتبُّع اليد إلى أوضاع الإدخال. لاستخدام الميزات التي توفّرها حزمة XR Hands، فعِّل ميزتَي نظام تتبُّع اليد الفرعي وMeta Hand
Tracking Aim OpenXR.
![]()
يمكن أن تكون حزمة XR hands مفيدة إذا كنت بحاجة إلى بيانات أكثر تفصيلاً حول وضعية اليد أو مفاصل اليد أو عندما تحتاج إلى العمل باستخدام إيماءات مخصّصة.
لمزيد من التفاصيل، يُرجى الاطّلاع على مستندات Unity حول إعداد XR Hands في مشروعك.
مناطق الثقة في تتبُّع الوجه
تقدّم إضافة XR_ANDROID_face_tracking قيم ثقة لثلاث مناطق في الوجه: أعلى اليسار وأعلى اليمين وأسفل الوجه. تشير هذه القيم، التي تتراوح بين 0 (عدم الثقة) و1 (أعلى ثقة)، إلى دقة تتبُّع الوجه لكل منطقة.
يمكنك استخدام قيم الثقة هذه لإيقاف أشكال المزج تدريجيًا أو تطبيق فلاتر مرئية (مثل التمويه) على منطقة الوجه المقابلة. لإيقاف أشكال المزج الأساسية، يجب إيقافها في منطقة الوجه المعنية.
يمثّل الجزء "أسفل الوجه" كل ما يقع تحت العينين، بما في ذلك الفم والذقن والخد والأنف. تشمل المنطقتان العلويتان العينين ومنطقة الحاجبين على الجانبين الأيمن والأيسر من الوجه.
يوضّح مقتطف رمز C# التالي كيفية الوصول إلى بيانات الثقة واستخدامها في نص برمجي في Unity:
using UnityEngine;
using Google.XR.Extensions;
public class FaceTrackingConfidence : MonoBehaviour
{
void Update()
{
if (!XRFaceTrackingFeature.IsFaceTrackingExtensionEnabled.HasValue)
{
DebugTextTopCenter.text = "XrInstance hasn't been initialized.";
return;
}
else if (!XRFaceTrackingFeature.IsFaceTrackingExtensionEnabled.Value)
{
DebugTextTopCenter.text = "XR_ANDROID_face_tracking is not enabled.";
return;
}
for (int x = 0; x < _faceManager.Face.ConfidenceRegions.Length; x++)
{
switch (x)
{
case (int)XRFaceConfidenceRegion.Lower:
regionText = "Bottom";
break;
case (int)XRFaceConfidenceRegion.LeftUpper:
regionText = DebugTextConfidenceLeft;
break;
case (int)XRFaceConfidenceRegion.RightUpper:
regionText = DebugTextConfidenceRight;
break;
}
}
}
لمزيد من المعلومات، يُرجى الاطّلاع على مستندات "إضافات Android XR لـ Unity".
اختيار طريقة لعرض اليدين
يتيح Android XR طريقتَين لعرض اليدَين: شبكة اليدَين وأداة عرض مسبقة الإنشاء.
شبكة اليد
تحتوي حزمة Android XR Unity على ميزة "شبكة اليد" التي تتيح الوصول إلى XR_ANDROID_hand_mesh extension. توفّر ميزة "شبكة اليد" شبكات لأيدي المستخدم. تحتوي شبكة اليد على رؤوس
مثلثات تمثّل شكل اليد. تهدف هذه الميزة إلى توفير شبكة مخصّصة تمثّل الشكل الهندسي الحقيقي ليدَي المستخدم بغرض العرض.
XR Hands prefab
تحتوي حزمة XR Hands على نموذج يُسمى Hands visualizer، ويتضمّن يدًا يمنى ويدًا يسرى مجهّزتَين بالكامل لعرض تمثيل مناسب لسياق استخدام المستخدم ليديه.
إيماءة نظام التشغيل
يتضمّن Android XR إيماءة نظام لفتح قائمة تتيح للمستخدمين الرجوع أو فتح مشغّل التطبيقات أو الحصول على نظرة عامة على التطبيقات قيد التشغيل. يمكن للمستخدم تفعيل قائمة النظام هذه باستخدام حركة القرص بالإبهام والسبابة في اليد المسيطرة.
عندما يتفاعل المستخدم مع قائمة التنقّل في النظام، لن يستجيب التطبيق إلا لأحداث تتبُّع حركة الرأس. يمكن لحزمة XR Hands رصد الحالات التي ينفّذ فيها المستخدم إجراءات معيّنة، مثل التفاعل مع قائمة التنقّل في النظام. يُعلمك التحقّق من AimFlags وSystemGesture وDominantHand بموعد تنفيذ إجراء النظام هذا. لمزيد من المعلومات حول AimFlags، يُرجى الرجوع إلى مستندات Enum MetaAimFlags من Unity.
XR Interaction Toolkit
حزمة XR Interaction Toolkit هي نظام تفاعلي عالي المستوى يعتمد على المكوّنات لإنشاء تجارب الواقع الافتراضي والواقع المعزّز. وهي توفّر إطار عمل يتيح التفاعلات ثلاثية الأبعاد وتفاعلات واجهة المستخدم من أحداث الإدخال في Unity. يتيح هذا النظام تنفيذ مهام تفاعلية، مثل الملاحظات والآراء الملموسة والمرئية والتنقل.
OpenXR™ وشعار OpenXR هما علامتان تجاريتان مملوكتان لشركة The Khronos Group Inc. ومسجّلتان كعلامة تجارية في الصين والاتحاد الأوروبي واليابان والمملكة المتحدة.