عند تطوير ألعاب Android لمجموعة كبيرة من أشكال الأجهزة، بما في ذلك الأجهزة القابلة للطي والأجهزة اللوحية والشاشات الكبيرة، غالبًا ما يربط اللاعبون وحدات تحكّم خارجية أو لوحات ألعاب. بالنسبة إلى شاشات واجهة المستخدم المصمّمة في الأصل للتفاعلات التي تتم باللمس أو باستخدام الماوس، قد يكون التنقّل في القوائم باستخدام وحدة التحكّم أمرًا صعبًا.
على الرغم من أنّ إعادة تصميم بنية واجهة المستخدم حول التنقّل العادي باستخدام لوحة الاتجاهات توفّر بشكل عام تجربة أفضل للمستخدم، قد لا يكون ذلك ممكنًا دائمًا للمشاريع الحالية. كخيار بديل، يوفّر "نظام الإدخال في Unity"
مكوّن VirtualMouseInput. يتيح لك هذا المكوّن تشغيل مؤشر برنامج افتراضي على الشاشة باستخدام لوحة ألعاب أو وحدة تحكّم متصلة.
لمحة عن VirtualMouseInput
مكوّن VirtualMouseInput هو أداة عالية المستوى في حزمة "نظام الإدخال في Unity" التي تربط بين إدخالات لوحة الألعاب والتحكّم في المؤشر على الشاشة وتفاعلات مؤشر واجهة المستخدم وأحداث شاشة اللمس المحاكاة. عندما يكون هذا المكوّن نشطًا، فإنّه:
- ينشئ جهاز ماوس افتراضيًا: يسجِّل ماوسًا محاكى بواسطة البرنامج في "نظام الإدخال في Unity" إلى جانب أي أجهزة تأشير مادية.
- يربط عناصر التحكّم في لوحة الألعاب بإجراءات المؤشر: يمكنك ربط عصا التحكّم التناظرية أو لوحات الاتجاهات لنقل المؤشر على الشاشة، وربط أزرار وحدة التحكّم (مثل الزر السفلي / A) لمحاكاة النقرات على الماوس الأيمن أو الأيسر أو الأوسط.
- يتكامل مع واجهة مستخدم Unity: من خلال العمل بسلاسة مع
InputSystemUIInputModule، تستجيب عناصر واجهة المستخدم العادية، مثل الأزرار والمفاتيح وأشرطة التمرير، للمؤشر الافتراضي تمامًا كما تستجيب للماوس المادي أو التفاعل باللمس. - يشغّل مؤشرًا مرئيًا: يتيح لك تعيين
Graphicلواجهة المستخدم (مثل مكوّنImage) الذي يتتبّع تلقائيًا موضع المؤشر الافتراضي على الشاشة ويعرضه.
الجمع بين الماوس الافتراضي وTouchSimulation
إذا كانت لعبتك مصمّمة في الأصل لشاشات اللمس فقط وتعتمد على النصوص البرمجية أو واجهات برمجة التطبيقات التي تعمل باللمس المباشر، لن يؤدي الماوس الافتراضي إلى تشغيل منطق رصد اللمس الحالي تلقائيًا لأنّه يتم تسجيله كجهاز ماوس وليس كجهاز شاشة لمس.
لدعم التفاعل مع المؤشر الذي يتم تشغيله بواسطة لوحة الألعاب بدون إعادة كتابة رمز معالجة اللمس القديم، يمكنك استخدام ميزة TouchSimulation في "نظام الإدخال في Unity" إلى جانب VirtualMouseInput:
- آلية العمل: عند تفعيل هذه الميزة باستخدام
TouchSimulation.Enable()، يحوّل "نظام الإدخال" تلقائيًا النقرات وحركات المؤشر من أي جهاز ماوس نشط، بما في ذلك الماوس المحاكى بواسطة البرنامج الذي تم إنشاؤه بواسطةVirtualMouseInput، إلى أحداث شاشة لمس محاكاة. - تدفق البيانات الناتج: تؤدي تفاعلات عصا التحكّم والأزرار في لوحة الألعاب إلى تشغيل الماوس الافتراضي، الذي يحوّله
TouchSimulationبعد ذلك إلى أحداث اللمس الفردي (Touchscreen). يمكن للنصوص البرمجية الحالية لرصد اللمس معالجة هذه الأحداث بسلاسة بدون تعديل الرمز. - الاعتبارات: تقتصر ميزة
TouchSimulationعلى محاكاة المؤشر الذي يعمل باللمس الفردي. إذا كانت طريقة اللعب تعتمد على إيماءات معقّدة تعمل باللمس المتعدّد، مثل التصغير أو التكبير بإصبعين أو التدوير بإصبعين، عليك ضبط عمليات ربط إجراءات الإدخال المخصّصة لعناصر التحكّم في لوحة الألعاب.
للحصول على التفاصيل الفنية الكاملة والخصائص ومستندات الاستخدام، يُرجى الرجوع إلى
المراجع الرسمية للنصوص البرمجية UnityEngine.InputSystem.UI.VirtualMouseInput
وUnityEngine.InputSystem.EnhancedTouch.TouchSimulation.