يوضّح لك هذا الدليل كيفية استخدام المكوِّن الإضافي Google Cardboard XR لـ Unity في Unity لإنشاء تجارب الواقع الافتراضي (VR) الخاصة بك.
يمكنك استخدام حزمة تطوير البرامج (SDK) لـ Cardboard لتحويل هاتف محمول إلى نظام أساسي للواقع الافتراضي. ويمكن للهاتف الذكي عرض مشاهد ثلاثية الأبعاد مع عرض مجسَّم، وتتبُّع حركات الرأس والتفاعل معها، والتفاعل مع التطبيقات من خلال رصد وقت ضغط المستخدم على زر المشاهد.
للبدء، ستستخدم HelloCardboard، وهي لعبة تجريبية تعرض الميزات الأساسية لحزمة تطوير البرامج (SDK) من Cardboard. في اللعبة، يتجول المستخدمون حول عالم افتراضي للعثور على العناصر وجمعها. ويعرض لك كيفية:
- إعداد بيئة التطوير
- تنزيل التطبيق التجريبي وإنشاؤها
- امسح ضوئيًا رمز الاستجابة السريعة لعارض Cardboard لحفظ معلماته.
- تتبع حركات رأس المستخدم
- عرض صور مجسَّمة من خلال ضبط التشوّه الصحيح لكل عين
- تفعيل وضع "الواقع الافتراضي" وإيقافه
إعداد بيئة التطوير
متطلبات البرامج:
- Unity 2021.3.32f1 أو إصدار أحدث
- تأكَّد من تقديم دعم إصدار Android وiOS أثناء التثبيت.
- يجب تثبيت Git وأن يكون ملف
git
التنفيذي على متغير بيئةPATH
. راجع مستندات git support to git من مدير حزم Unity للحصول على مزيد من التفاصيل.
استيراد حزمة تطوير البرامج (SDK) وإنشاء مشروع جديد
اتّبِع الخطوات التالية لاستيراد حزمة Unity SDK وإنشاء مشروع جديد.
- افتح Unity وأنشئ مشروع ثلاثي الأبعاد جديد.
- في Unity، انتقِل إلى Window > مدير الحزمة.
- انقر على + واختر إضافة حزمة من git URL.
- الصق
https://github.com/googlevr/cardboard-xr-plugin.git
في حقل إدخال النص
يجب إضافة الحزمة إلى الحِزم المثبَّتة. - انتقِل إلى حزمة المكوّن الإضافي Google Cardboard XR لـ Unity. في القسم عيّنات، اختَر استيراد إلى المشروع.
يجب تحميل نماذج مواد العرض فيAssets/Samples/Google Cardboard/<version>/Hello Cardboard
.
تكوين مشهد HelloCardboard
- انتقل إلى
Assets/Samples/Google Cardboard/<version>/Hello Cardboard/Scenes
، وحدد إضافة مشاهد مفتوحة، واختر HelloCardboard لفتح نموذج المشهد. - افتح قائمة الطبقات واختر تعديل الطبقات....
- حدد طبقة جديدة تسمى "Interactive" (تفاعلية).
- انقر على Treasure GameObject (كنز) لفتح نافذة Inspector (أداة الفحص). قم بتعيين طبقتها لتكون "تفاعلية". إذا ظهرت نافذة منبثقة تسألك عما إذا كنت تريد تعيين الطبقة على تفاعلية لجميع الكائنات الفرعية أيضًا، فانقر فوق "Yes, change children" (نعم، تغيير الأطفال).
- انقر على المشغّل > الكاميرا > CardboardReticlePointer GameObject لفتح نافذة أداة الفحص. في النص البرمجي "مؤشر لوحة Carboard"، اختَر "Interactive" (تفاعل) كقناع طبقة تفاعل Reticle.
ضبط إعدادات مشروع Android
انتقِل إلى ملف > إعدادات الإنشاء.
- اختَر Android ثم تبديل النظام الأساسي.
- اختر إضافة Open Scenes (إضافة مشاهد مفتوح) واختر HelloCardboard.
إعدادات المشغّل
الدقة والعرض التقديمي
انتقل إلى إعدادات المشروع > المشغّل > الحلّ والعرض التقديمي.
- اضبط الاتجاه التلقائي على أفقية لليسار أو أفقي لليمين.
- أوقِف تحسين سرعة اللقطات في الثانية.
إعدادات أخرى
انتقل إلى إعدادات المشروع > المشغل > إعدادات أخرى.
- اختَر
OpenGLES2
أوOpenGLES3
أوVulkan
أو أي مجموعة منها في واجهات برمجة التطبيقات للرسومات. - اختَر
Android 8.0 'Oreo' (API level 26)
أو أعلى في الحد الأدنى لمستوى واجهة برمجة التطبيقات. - اختَر
API level 33
أو مستوى أعلى في مستوى واجهة برمجة التطبيقات المستهدَف. - حدد
IL2CPP
في خلفية البرمجة النصية. - اختَر البُنى الأساسية المطلوبة من خلال اختيار
ARMv7
أوARM64
أو كليهما في البُنى الأساسية المستهدفة. - حدد
Require
في الاتصال بالإنترنت. - حدِّد نطاق شركتك ضمن اسم الحزمة.
- في حال اختيار
Vulkan
كـ Graphics API:- أزِل العلامة من مربّع الاختيار تطبيق تدوير العرض أثناء العرض في إعدادات Vulkan.
- إذا كان إصدار Unity 2021.2 أو إصدار أحدث، اختَر
ETC2
في تنسيق ضغط القوام.
- إذا كان إصدار Unity هو 2023.1 أو إصدار أحدث، انقر على
Activity
وامسحGameActivity
في نقطة إدخال طلب التقدّم.
إعدادات النشر
انتقِل إلى إعدادات المشروع > المشغّل > إعدادات النشر.
- في القسم إنشاء، اختَر
Custom Main Gradle Template
وCustom Gradle Properties Template
. أضِف السطور التالية إلى قسم التبعيات في
Assets/Plugins/Android/mainTemplate.gradle
:implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.gms:play-services-vision:20.1.3' implementation 'com.google.android.material:material:1.6.1' implementation 'com.google.protobuf:protobuf-javalite:3.19.4'
أضف الأسطر التالية إلى
Assets/Plugins/Android/gradleTemplate.properties
:android.enableJetifier=true android.useAndroidX=true
إعدادات إدارة مكوّن XR الإضافي
انتقِل إلى إعدادات المشروع > إدارة المكوّن الإضافي XR.
- اختَر
Cardboard XR Plugin
ضمن مقدِّمو المكوّنات الإضافية.
بناء مشروعك
انتقِل إلى ملف > إعدادات الإنشاء.
- اختَر إنشاء أو اختَر جهازًا وانقر على إنشاء وتشغيل.
ضبط إعدادات مشروع iOS
انتقِل إلى ملف > إعدادات الإنشاء.
- اختَر iOS واختَر تبديل النظام الأساسي.
- اختر إضافة Open Scenes (إضافة مشاهد مفتوح) واختر HelloCardboard.
إعدادات المشغّل
الدقة والعرض التقديمي
انتقل إلى إعدادات المشروع > المشغّل > الحلّ والعرض التقديمي.
- اضبط الاتجاه التلقائي على أفقية لليسار أو أفقي لليمين.
إعدادات أخرى
انتقل إلى إعدادات المشروع > المشغل > إعدادات أخرى.
- في وصف استخدام الكاميرا، اكتب
Cardboard SDK requires camera permission to read the QR code (required to get the encoded device parameters).
. - في استهداف الحد الأدنى من إصدار iOS، اكتب
12.0
. - حدِّد نطاق شركتك ضمن اسم الحزمة.
إعدادات إدارة مكوّن XR الإضافي
انتقِل إلى إعدادات المشروع > إدارة المكوّن الإضافي XR.
- اختَر
Cardboard XR Plugin
ضمن مقدِّمو المكوّنات الإضافية.
بناء مشروعك
انتقِل إلى ملف > إعدادات الإنشاء.
- اختَر إنشاء أو إنشاء وتشغيل.
جارٍ إعادة التوسيط
تتيح لك Cardboard SDK إمكانية إعادة
توسيط جهاز تتبّع الرأس باستخدام Recenter()
.
اتّبِع الخطوات التالية لتجربتها باستخدام نموذج التطبيق:
- حرِّك الجهاز إلى الموضع الذي تريد توسيطه (استخدمه كوضع رأس جديد بالنظر إلى الأمام).
- اضغط مع الاستمرار على مشغل جهاز Cardboard نشطًا لمدة ثلاث ثوانٍ على الأقل.
- ارفع إصبعك عن العامل المشغِّل.
- الوضع الأولي الآن في الاتجاه الذي تشير إليه الكاميرا.
تفعيل وضع "الواقع الافتراضي" وإيقافه
تتيح لك واجهة برمجة التطبيقات لإدارة المكوّن الإضافي Unity XR تفعيل وضع الواقع الافتراضي أو إيقافه للمكوّن الإضافي Google Cardboard XR لـ Unity. تتوفّر وثائق المستخدم النهائي وأمثلة الاستخدام في وثائق المستخدم النهائي في Unity.
يُظهر المشهد VrMode في HelloCardboard استخدامًا أساسيًا لواجهة برمجة التطبيقات المذكورة أعلاه. في هذا المشهد، يمكن إيقاف وضع "الواقع الافتراضي" من خلال النقر على خروج ، ويمكن تفعيله مجددًا من خلال النقر في أي مكان على الشاشة. اطّلع على VrModeController.cs للحصول على تفاصيل عن كيفية تنفيذ ذلك.