Android गेम को अलग-अलग तरह के डिवाइसों के लिए बनाया जा सकता है. इनमें फ़ोल्ड किए जा सकने वाले डिवाइस, टैबलेट, और बड़ी स्क्रीन वाले डिवाइस शामिल हैं. ऐसे में, खिलाड़ी अक्सर बाहरी कंट्रोलर या गेमपैड कनेक्ट करते हैं. यूज़र इंटरफ़ेस (यूआई) वाली स्क्रीन को टच या माउस से इंटरैक्ट करने के लिए डिज़ाइन किया जाता है. ऐसे में, कंट्रोलर की मदद से मेन्यू में नेविगेट करना मुश्किल हो सकता है.
आम तौर पर, डी-पैड नेविगेशन के हिसाब से यूज़र इंटरफ़ेस (यूआई) के आर्किटेक्चर को फिर से डिज़ाइन करने से, उपयोगकर्ताओं को बेहतर अनुभव मिलता है. हालांकि, मौजूदा प्रोजेक्ट के लिए यह हमेशा मुमकिन नहीं होता. इसके अलावा, Unity Input System
में VirtualMouseInput कॉम्पोनेंट की सुविधा मिलती है. इस कॉम्पोनेंट की मदद से, कनेक्ट किए गए गेमपैड या कंट्रोलर का इस्तेमाल करके, स्क्रीन पर दिखने वाले वर्चुअल सॉफ़्टवेयर कर्सर को कंट्रोल किया जा सकता है.
`VirtualMouseInput` के बारे में जानकारी
VirtualMouseInput कॉम्पोनेंट, Unity Input System पैकेज में एक हाई-लेवल यूटिलिटी है. यह गेमपैड इनपुट को स्क्रीन पर दिखने वाले कर्सर कंट्रोल, यूज़र इंटरफ़ेस (यूआई) पॉइंटर इंटरैक्शन, और सिम्युलेटेड टचस्क्रीन इवेंट से जोड़ता है. चालू होने पर, यह:
- वर्चुअल माउस डिवाइस बनाता है: यह Unity Input System में, सॉफ़्टवेयर से सिम्युलेट किए गए माउस को रजिस्टर करता है. इसके साथ ही, यह किसी भी फ़िज़िकल पॉइंटिंग डिवाइस को भी रजिस्टर करता है.
- गेमपैड कंट्रोल को कर्सर ऐक्शन पर मैप करता है: एनालॉग स्टिक या डी-पैड को स्क्रीन पर कर्सर को घुमाने के लिए बाइंड किया जा सकता है. साथ ही, कंट्रोलर बटन (जैसे, बटन साउथ / A) को, माउस के बाएं, दाएं या बीच वाले बटन पर क्लिक करने की कार्रवाई को सिम्युलेट करने के लिए मैप किया जा सकता है.
- Unity UI के साथ इंटिग्रेट होता है:
InputSystemUIInputModuleके साथ मिलकर काम करने पर, बटन, टॉगल, और स्लाइडर जैसे स्टैंडर्ड यूज़र इंटरफ़ेस (यूआई) एलिमेंट, वर्चुअल कर्सर के साथ ठीक उसी तरह काम करते हैं जैसे वे हार्डवेयर माउस या टच इंटरैक्शन के साथ करते हैं. - विज़ुअल कर्सर को कंट्रोल करता है: इसकी मदद से, यूज़र इंटरफ़ेस (यूआई)
Graphic(जैसे,Imageकॉम्पोनेंट) असाइन किया जा सकता है. यह स्क्रीन पर वर्चुअल कर्सर की पोज़िशन को अपने-आप ट्रैक और रेंडर करता है.
वर्चुअल माउस को TouchSimulation के साथ इस्तेमाल करना
अगर आपका गेम सिर्फ़ टचस्क्रीन के लिए डिज़ाइन किया गया है और यह सीधे टच स्क्रिप्ट या एपीआई पर काम करता है, तो वर्चुअल माउस, टच का पता लगाने की मौजूदा लॉजिक को अपने-आप ट्रिगर नहीं करेगा. ऐसा इसलिए, क्योंकि यह टचस्क्रीन डिवाइस के बजाय माउस डिवाइस के तौर पर रजिस्टर होता है.
गेमपैड से कंट्रोल किए जाने वाले कर्सर इंटरैक्शन को सपोर्ट करने के लिए, आपको टच को हैंडल करने वाले पुराने कोड को फिर से लिखने की ज़रूरत नहीं है. इसके लिए, Unity Input System's
TouchSimulation सुविधा को VirtualMouseInput के साथ इस्तेमाल किया जा सकता है:
- यह कैसे काम करता है:
TouchSimulation.Enable()का इस्तेमाल करके, इसे चालू करने पर, Input System, किसी भी चालू माउस डिवाइस से होने वाले क्लिक और पॉइंटर की गतिविधियों को सिम्युलेटेड टचस्क्रीन इवेंट में बदल देता है. इसमें,VirtualMouseInputसे बनाया गया सॉफ़्टवेयर से सिम्युलेट किया गया माउस भी शामिल है. - डेटा फ़्लो: गेमपैड स्टिक और बटन इंटरैक्शन, वर्चुअल माउस को कंट्रोल करते हैं. इसके बाद,
TouchSimulationइसे सिंगल-टच इवेंट (Touchscreen) में बदल देता है. टच का पता लगाने वाली आपकी मौजूदा स्क्रिप्ट, कोड में बदलाव किए बिना इन इवेंट को आसानी से प्रोसेस कर सकती हैं. - इन बातों पर ध्यान दें:
TouchSimulationसिर्फ़ सिंगल-टच पॉइंटर इम्यूलेशन के लिए काम करता है. अगर आपका गेमप्ले, पिंच-टू-ज़ूम या दो उंगलियों से रोटेशन जैसे मल्टी-टच जेस्चर पर काम करता है, तो आपको अपने गेमपैड कंट्रोल के लिए, इनपुट ऐक्शन बाइंडिंग कॉन्फ़िगर करनी होंगी.
तकनीकी जानकारी, प्रॉपर्टी, और इस्तेमाल से जुड़े दस्तावेज़ देखने के लिए, आधिकारिक UnityEngine.InputSystem.UI.VirtualMouseInput
और UnityEngine.InputSystem.EnhancedTouch.TouchSimulation
स्क्रिप्ट के रेफ़रंस देखें.