يقدّم هذا الدليل نظرة عامة على عملية التطوير باستخدام Unity لمنصة Android XR. يتوافق Android XR مع الأدوات والميزات المألوفة التي تتوقّعها من Unity، وبما أنّ توافق Unity مع Android XR يستند إلى OpenXR، فإنّ العديد من الميزات الموضّحة في نظرة عامة حول OpenXR تتوافق أيضًا مع Unity.
اتّبِع هذا الدليل للتعرّف على ما يلي:
- توافُق Unity مع Android XR
- أساسيات الواقع الممتد (XR) في Unity
- تطوير تطبيقات ونشرها على 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. تضيف أداة إدارة المكوّنات الإضافية الخاصة بتجربة الواقع الممتد إعدادات المشروع لإدارة المكوّنات الإضافية الخاصة بتجربة الواقع الممتد وتقديم المساعدة في تحميلها وإعدادها وإعداداتها ودعم الإصدارات. للسماح لتطبيقك بتنفيذ ميزات OpenXR في وقت التشغيل، يجب تفعيل هذه الميزات في المشروع من خلال "مدير المكوّنات الإضافية".
تعرض هذه الصورة مثالاً على المكان الذي يمكنك فيه تفعيل مجموعات الميزات هذه من خلال أداة التعديل في Unity.
Unity OpenXR Android XR
حزمة Unity OpenXR Android XR هي إضافة XR تتيح إمكانية استخدام Android XR في Unity. توفّر إضافة XR Plug-in معظم إمكانات 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 (الإضافات): تم تضمين "المستوى" حتى يتمكّن المطوّرون من استخدام ميزتَي "تتبُّع العناصر" و"نقاط الارتكاز الثابتة" في 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: AR Anchor |
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)
|
التركيز على نقطة النظر (الإصدار القديم) |
تتيح هذه التقنية تسريع عملية العرض من خلال خفض درجة دقة المناطق في مجال الرؤية المحيطي للمستخدم. لا تتوافق ميزة العرض البؤري في 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) لتوسيع قسم المكوّنات الإضافية (إذا لزم الأمر).
- اختَر OpenXR في قائمة إضافات XR.
- في قسم ملفات تعريف التفاعل، انقر على الزر + لإضافة ملف تعريف.
- اختَر الملف الشخصي الذي تريد إضافته من القائمة.
التفاعل باليد
يوفّر OpenXR Plugin ميزة التفاعل باستخدام اليد (XR_EXT_hand_interaction
)، ويمكنك عرض تخطيط الجهاز <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 في مشروعك.
اختيار طريقة لعرض اليدين
يتيح 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. ومسجّلتان كعلامة تجارية في الصين والاتحاد الأوروبي واليابان والمملكة المتحدة.