Android XR के लिए Unity की मदद से डेवलप करना

इस्तेमाल किए जा सकने वाले XR डिवाइस
इन दिशा-निर्देशों से आपको इस तरह के एक्सआर डिवाइसों के लिए अनुभव तैयार करने में मदद मिलती है.
एक्सआर हेडसेट
वायर वाले एक्सआर स्मार्ट ग्लास

इस गाइड में, Android XR के लिए Unity का इस्तेमाल करके ऐप्लिकेशन बनाने के बारे में खास जानकारी दी गई है. Android XR, Unity के उन जाने-पहचाने टूल और सुविधाओं के साथ काम करता है जिनकी आपको उम्मीद है. Unity में Android XR की सुविधा, OpenXR पर आधारित है. इसलिए, OpenXR की खास जानकारी में बताई गई कई सुविधाएं, Unity में भी काम करती हैं.

इस गाइड को पढ़कर, इनके बारे में जानें:

  • Android XR के लिए Unity की सहायता
    • Unity XR की बुनियादी बातें
    • Android XR के लिए ऐप्लिकेशन डेवलप और पब्लिश करना
    • Android XR के लिए Unity पैकेज
      • Unity OpenXR: Android XR पैकेज
      • Unity के लिए Android XR Extensions
      • सुविधाएं और साथ काम करने से जुड़ी ज़रूरी बातें
  • इनपुट और इंटरैक्शन

Android XR के लिए Unity की सहायता

Android XR के लिए Unity ऐप्लिकेशन बनाते समय, Unity 6 के नए वर्शन में मौजूद मिक्स्ड रिएलिटी टूल और सुविधाओं का फ़ायदा लिया जा सकता है. इनमें मिक्स्ड रिएलिटी वाले टेंप्लेट शामिल हैं. ये टेंप्लेट, XR Interaction Toolkit, AR Foundation, और OpenXR Plugin का इस्तेमाल करते हैं, ताकि आप जल्दी से काम शुरू कर सकें. Android XR के लिए Unity का इस्तेमाल करके ऐप्लिकेशन बनाते समय, हमारा सुझाव है कि आप रेंडर पाइपलाइन के तौर पर यूनिवर्सल रेंडर पाइपलाइन (यूआरपी) और ग्राफ़िक्स एपीआई के तौर पर Vulkan का इस्तेमाल करें. इन सुविधाओं की मदद से, Unity की कुछ ग्राफ़िक्स सुविधाओं का फ़ायदा लिया जा सकता है. ये सुविधाएं सिर्फ़ Vulkan के साथ काम करती हैं. इन सेटिंग को कॉन्फ़िगर करने के तरीके के बारे में ज़्यादा जानकारी के लिए, प्रोजेक्ट सेटअप गाइड देखें.

Unity XR की बुनियादी बातें

अगर आप Unity या XR डेवलपमेंट के लिए नए हैं, तो XR के बुनियादी कॉन्सेप्ट और वर्कफ़्लो को समझने के लिए, Unity का XR मैन्युअल देखें. XR के मैन्युअल में इनके बारे में जानकारी शामिल है:

Android के लिए ऐप्लिकेशन डेवलप और पब्लिश करना

Unity, Android के लिए ऐप्लिकेशन डेवलप करने, बनाने, और पब्लिश करने के बारे में पूरी जानकारी देता है. इसमें Unity में Android की अनुमतियां, Android बिल्ड सेटिंग, Android के लिए ऐप्लिकेशन बनाना, और Google Play पर ऐप्लिकेशन उपलब्ध कराना जैसे विषय शामिल हैं.

Android XR के लिए Unity पैकेज

Android XR के लिए Unity ऐप्लिकेशन बनाने की सुविधा देने वाले दो पैकेज हैं. ये दोनों पैकेज, एक्सआर प्रोवाइडर प्लग-इन हैं. इन्हें Unity के XR प्लग-इन मैनेजमेंट पैकेज की मदद से चालू किया जा सकता है. एक्सआर प्लग-इन मैनेजर, प्रोजेक्ट सेटिंग जोड़ता है. इससे एक्सआर प्लग-इन को लोड करने, शुरू करने, सेटिंग करने, और बिल्ड करने में मदद मिलती है. रनटाइम के दौरान OpenXR की सुविधाओं को लागू करने के लिए, प्रोजेक्ट में ये सुविधाएं चालू होनी चाहिए. इसके लिए, प्लग-इन मैनेजर का इस्तेमाल करें.

इस इमेज में एक उदाहरण दिखाया गया है. इसमें बताया गया है कि Unity के एडिटर की मदद से, इन सुविधाओं के ग्रुप को कहां से चालू किया जा सकता है.

पहली इमेज. Unity XR प्लग-इन मैनेजमेंट स्क्रीन का उदाहरण.

Unity OpenXR Android XR

Unity OpenXR Android XR पैकेज, एक XR प्लग-इन है. इसकी मदद से, Unity में Android XR की सुविधा जोड़ी जा सकती है. यह XR प्लग-इन, Unity के लिए Android XR की ज़्यादातर सुविधाएं उपलब्ध कराता है. साथ ही, यह AR Foundation प्रोजेक्ट के लिए, Android XR डिवाइस पर काम करने की सुविधा चालू करता है. AR Foundation को उन डेवलपर के लिए डिज़ाइन किया गया है जो एआर या मिक्स्ड रिएलिटी वाले अनुभव बनाना चाहते हैं. यह एआर की सुविधाओं के लिए इंटरफ़ेस उपलब्ध कराता है, लेकिन खुद कोई सुविधा लागू नहीं करता. Unity OpenXR Android XR पैकेज, इसे लागू करने की सुविधा देता है. इस पैकेज का इस्तेमाल शुरू करने के लिए, पैकेज का मैन्युअल देखें. इसमें, शुरुआती निर्देश मौजूद हैं.

Unity के लिए Android XR Extensions

Android XR Extensions for Unity, Unity OpenXR Android XR पैकेज के साथ काम करता है. इसमें अतिरिक्त सुविधाएं शामिल हैं, ताकि आपको इमर्सिव एक्सपीरियंस बनाने में मदद मिल सके. इसका इस्तेमाल अकेले या Unity OpenXR Android XR पैकेज के साथ किया जा सकता है.

इस पैकेज का इस्तेमाल शुरू करने के लिए, प्रोजेक्ट सेटअप करने की हमारी गाइड या Unity के लिए Android XR Extensions को इंपोर्ट करने के लिए क्विकस्टार्ट गाइड देखें.

सुविधाएं और साथ काम करने से जुड़ी ज़रूरी बातें

यहां दी गई टेबल में, Unity OpenXR: Android XR पैकेज और Android XR Extensions for Unity पैकेज के साथ काम करने वाली सुविधाओं के बारे में बताया गया है. इसका इस्तेमाल करके, यह तय किया जा सकता है कि किस पैकेज में आपकी ज़रूरत की सुविधाएं मौजूद हैं. साथ ही, यह भी पता लगाया जा सकता है कि वह पैकेज आपके डिवाइस के साथ काम करता है या नहीं.

सुविधा

Unity OpenXR: Android XR की सुविधा वाली स्ट्रिंग

Unity के लिए Android XR Extensions की सुविधा वाली स्ट्रिंग

इस्तेमाल के उदाहरण और सामान्य रूप से क्या होना चाहिए

एआर सेशन

Android XR: एआर सेशन

  • सुविधा की सेटिंग में, बफ़र डिस्कार्ड को ऑप्टिमाइज़ करना (Vulkan) शामिल है

Android XR (Extensions): सेशन मैनेजमेंट

  • सुविधा की सेटिंग में, सबसैंपलिंग (Vulkan) और यूआरपी स्पेसवार्प (Vulkan) शामिल हैं

किसी भी पैकेज की सुविधाओं का इस्तेमाल करने के लिए, आपको उस पैकेज के लिए एआर सेशन की सुविधा चालू करनी होगी. दोनों सुविधाओं के सेट को एक साथ चालू किया जा सकता है. अलग-अलग सुविधाएं, अपने हिसाब से समस्याओं को हल करेंगी.

डिवाइस को ट्रैक करने की सुविधा

लागू नहीं

लागू नहीं

डिवाइस ट्रैकिंग का इस्तेमाल, फ़िज़िकल स्पेस में डिवाइस की पोज़िशन और रोटेशन को ट्रैक करने के लिए किया जाता है. XR Origin GameObject, डिवाइस को ट्रैक करने और ट्रैक किए जा सकने वाले ऑब्जेक्ट को Unity के कोऑर्डिनेट सिस्टम में बदलने की प्रोसेस को अपने-आप मैनेज करता है. इसके लिए, वह अपने XROrigin कॉम्पोनेंट और GameObject की हैरारकी का इस्तेमाल करता है. इसमें एक कैमरा और TrackedPoseDriver शामिल होता है.

कैमरा

Android XR: एआर कैमरा

लागू नहीं

इस सुविधा की मदद से, रोशनी का अनुमान लगाया जा सकता है और फ़ुल स्क्रीन पासथ्रू की सुविधा का इस्तेमाल किया जा सकता है.

प्लेन डिटेक्शन

Android XR: एआर प्लेन

लागू नहीं

इस सुविधा की मदद से, आस-पास की समतल सतहों का पता लगाया जा सकता है और उन्हें ट्रैक किया जा सकता है.

ऑब्जेक्ट ट्रैकिंग

लागू नहीं

Android XR (Extensions): ऑब्जेक्ट ट्रैकिंग

इस सुविधा की मदद से, आस-पास के माहौल में मौजूद ऑब्जेक्ट का पता लगाया जा सकता है और उन्हें ट्रैक किया जा सकता है. इसका इस्तेमाल, रेफ़रंस ऑब्जेक्ट लाइब्रेरी के साथ किया जाता है.

चेहरा ट्रैक करने की सुविधा

Android XR: एआर फ़ेस

  • सिर्फ़ XR_ANDROID_eye_tracking
  • चेहरा ट्रैक करने की सुविधा बंद है

Android XR: चेहरा ट्रैक करने की सुविधा

  • XR_ANDROID_face_tracking

अवतार की आंखों को ट्रैक करने की सुविधा, Android XR: AR Face सुविधा के ज़रिए उपलब्ध कराई जाती है. Android XR: चेहरा ट्रैक करने की सुविधा की मदद से, उपयोगकर्ता के चेहरे के हाव-भाव ऐक्सेस करना. इन दोनों सुविधाओं को एक साथ इस्तेमाल किया जा सकता है.

रे कास्ट

Android XR: AR Raycast

  • प्लेन ऐंकर
  • डेप्थ ऐंकर

लागू नहीं

इस सुविधा की मदद से, रे कास्ट की जा सकती है. साथ ही, उस रे और प्लेन या डेप्थ ट्रैक किए जा सकने वाले ऑब्जेक्ट के बीच के इंटरसेक्शन का पता लगाया जा सकता है. ये ऑब्जेक्ट, असल दुनिया में मौजूद होते हैं.

ऐंकर

Android XR: एआर ऐंकर

लागू नहीं

AR Anchor, AR Foundation के ज़रिए स्पेशल, प्लेन, और परसिस्टेंट ऐंकर के साथ काम करता है.

ऑक्लूज़न

Android XR: एआर ऑक्लूज़न

  • एनवायरमेंट डेप्थ

लागू नहीं

ऑक्लूज़न की मदद से, आपके ऐप्लिकेशन में मौजूद मिक्स्ड रिएलिटी कॉन्टेंट को आस-पास की चीज़ों के पीछे छिपाया जा सकता है या थोड़ा-बहुत दिखाया जा सकता है.

परफ़ॉर्मेंस मेट्रिक

Android XR की परफ़ॉर्मेंस मेट्रिक

लागू नहीं

Android XR डिवाइसों की परफ़ॉर्मेंस मेट्रिक ऐक्सेस करने के लिए, इस सुविधा का इस्तेमाल करें.

कंपोज़िशन लेयर

कंपोज़िशन लेयर की सुविधा (OpenXR प्लगिन और XR कंपोज़िशन लेयर ज़रूरी है)

Android XR: Passthrough Composition Layer

  • XR_ANDROID_composition_layer_passthrough_mesh

Unity के कंपोज़िशन लेयर सपोर्ट का इस्तेमाल करके, बेसिक कंपोज़िशन लेयर बनाएं. जैसे, क्वाड, सिलेंडर, प्रोजेक्शन. Android XR: Passthrough Composition Layer का इस्तेमाल करके, कस्टम मेश के साथ पासथ्रू लेयर बनाई जा सकती है. इसके लिए, Unity के GameObject से डेटा पढ़ा जाता है.

फ़ोविएटेड रेंडरिंग

फ़ोविएटेड रेंडरिंग (OpenXR प्लगिन ज़रूरी है)

  • यह आई ट्रैकिंग की सुविधा के साथ फ़ोविएटेड रेंडरिंग की सुविधा देता है: हाई रिज़ॉल्यूशन वाला हिस्सा वहां फ़ोकस होता है जहां उपयोगकर्ता देख रहा होता है. इससे उपयोगकर्ता को यह कम दिखता है

फ़ोविएशन (लेगसी)

फ़ोविएटेड रेंडरिंग की मदद से, रेंडरिंग की स्पीड बढ़ाई जा सकती है. इसके लिए, उपयोगकर्ता के पेरिफ़रल विज़न में मौजूद हिस्सों के रिज़ॉल्यूशन को कम किया जाता है. Unity की फ़ोविएटेड रेंडरिंग सुविधा सिर्फ़ उन ऐप्लिकेशन के लिए काम करती है जो यूआरपी और Vulkan का इस्तेमाल करते हैं. Unity के लिए Android XR Extensions में मौजूद फ़ोविएशन (लेगसी) सुविधा, बिल्ट-इन रेंडर पाइपलाइन और OpenGL ES के साथ भी काम करती है. हमारा सुझाव है कि जब भी संभव हो, Unity की फ़ोविएटेड रेंडरिंग सुविधा का इस्तेमाल करें. साथ ही, ध्यान दें कि Android XR के लिए ऐप्लिकेशन बनाते समय, यूआरपी और Vulkan, दोनों का इस्तेमाल करने का सुझाव दिया जाता है.

अनबाउंडेड रेफ़रंस स्पेस

लागू नहीं

Android XR: Unbounded Reference Space

यह सुविधा, XRInputSubsystem ट्रैकिंग ऑरिजिन मोड को अनबाउंड पर सेट करती है. अनबाउंडेड का मतलब है कि XRInputSubsystem, वर्ल्ड ऐंकर के हिसाब से सभी InputDevices को ट्रैक करता है. वर्ल्ड ऐंकर में बदलाव हो सकता है.

एनवायरमेंट ब्लेंड मोड

लागू नहीं

एनवायरमेंट ब्लेंड मोड

इस सुविधा की मदद से, एक्सआर एनवायरमेंट ब्लेंड मोड सेट किया जा सकता है. इससे यह कंट्रोल किया जाता है कि पास-थ्रू मोड चालू होने पर, वर्चुअल इमेज असल दुनिया के माहौल के साथ कैसे ब्लेंड होती है.

जियोस्पेशल (वीपीएस)

लागू नहीं

Android XR: जियोस्पेशल

इससे XRGeospatialManager को विज़ुअल पोज़िशनिंग सिस्टम (वीपीएस) की सुविधाओं को ऐक्सेस करने, जगह की जानकारी की उपलब्धता की जांच करने, और जियोस्पेशल पोज़ का हिसाब लगाने की अनुमति मिलती है. साथ ही, सतह और जियोस्पेशल ऐंकर के लिए, प्लेन ट्रैकिंग को कॉन्फ़िगर करने की अनुमति मिलती है.

Google Cloud Auth

लागू नहीं

Android XR: Google Cloud

क्लाउड-आधारित सेवाओं के लिए, सेशन की पुष्टि करने के कॉन्फ़िगरेशन की रणनीतियां (एपीआई पासकोड, बिना पासकोड के, और पुष्टि करने वाला टोकन) उपलब्ध कराता है.

मल्टीमोडल फ़ेस

लागू नहीं

Android XR (एक्सटेंशन): मल्टीमोडल फ़ेस

यह Unity ARFace को कॉन्फ़िगर किए जा सकने वाले, मल्टीमॉडल फ़ेस-ट्रैकिंग मोड (XRFaceTrackerMode) के साथ बेहतर बनाता है.

बैटरी की स्थिति दिखाने की सेटिंग

लागू नहीं

बैटरी की स्थिति दिखाने की सेटिंग

XRBatteryStateDisplayFeature का इस्तेमाल करके, कनेक्ट किए गए कंट्रोलर और इनपुट पाथ की रनटाइम बैटरी की स्थिति और चार्ज लेवल के बारे में क्वेरी करने की अनुमति देता है.

ग्लोबल पासथ्रू डिमिंग

Android XR: एआर कैमरा

लागू नहीं

Unity के ARCameraFeature का इस्तेमाल करके, असल दुनिया के पास-थ्रू डिमिंग लेवल के बारे में क्वेरी करने और उन्हें सेट करने की सुविधा मिलती है.

सिस्टम प्रॉपर्टी की सूची

लागू नहीं

Android XR: सिस्टम प्रॉपर्टी

XR_ANDROID_enumerate_system_extension_properties का इस्तेमाल करके, रनटाइम एक्सटेंशन की प्रॉपर्टी और डिवाइस की क्षमताओं के बारे में बताता है.

सुझाई गई सेटिंग

लागू नहीं

Android XR: सुझाई गई सेटिंग

XRRecommendedSettingsFeature.TryGetRecommendedSettings का इस्तेमाल करके, रनटाइम एनवायरमेंट की प्री-लॉन्च स्थितियों के बारे में क्वेरी करने की अनुमति देता है. इसमें एनवायरमेंट ब्लेंड मोड, पासथ्रू ओपैसिटी, और ऐक्टिव इनपुट मोड शामिल हैं.

बाउंडिंग बॉक्स की पहचान करना

Android XR: एआर बाउंडिंग बॉक्स

स्पेशल एंटिटी (एक्सटेंशन): बाउंडिंग बॉक्स

OpenXR Spatial Entities फ़्रेमवर्क (SpatialBoundingBoxSubsystem) का इस्तेमाल करके, असल दुनिया में मौजूद 3D ऑब्जेक्ट के लिए, बाउंडिंग बॉक्स की पहचान करने की सुविधा देता है.

शेयर किए जा सकने वाले ऐंकर

लागू नहीं

स्पेशल एंटिटी (एक्सटेंशन): शेयर किए जा सकने वाले ऐंकर

ARShareableAnchorManager और XRShareableAnchorSubsystem का इस्तेमाल करके, ऐंकर की सुविधाओं को बेहतर बनाता है. इसमें Android XR: Geospatial के साथ इस्तेमाल किए जाने पर, जियोस्पेशल ऐंकर (TryAttachGeospatialAnchor) और सरफ़ेस ऐंकर (TryAttachSurfaceAnchorAsync) अटैच करना शामिल है.

स्पेशल कंटेनर

लागू नहीं

स्पेशल कंटेनर

इससे ऐप्लिकेशन के कॉन्टेंट को फ़ुल स्पेस मोड में, सिस्टम से मैनेज किए जाने वाले 3D वॉल्यूमेट्रिक कंटेनर में रेंडर किया जा सकता है. इसके लिए, XRSpatialContainerFeature पर एपीआई और कॉलबैक इवेंट का इस्तेमाल किया जाता है. इससे कंटेनर की स्थिति, सीमाओं, और विज़िबिलिटी के बारे में क्वेरी और अनुरोध किया जा सकता है.

इनपुट और इंटरैक्शन

Android XR, मल्टी-मोडल नैचुरल इनपुट के साथ काम करता है.

हाथ और आई ट्रैकिंग की सुविधा के अलावा, 6DoF कंट्रोलर, माउस, और फ़िज़िकल कीबोर्ड जैसे सहायक डिवाइस भी काम करते हैं. इसका मतलब है कि Android XR के लिए बनाए गए ऐप्लिकेशन, हाथों के जेस्चर से इंटरैक्ट करने की सुविधा के साथ काम करने चाहिए. साथ ही, यह नहीं माना जा सकता कि सभी डिवाइसों के साथ कंट्रोलर मिलेंगे.

इंटरैक्शन प्रोफ़ाइलें

Unity, इंटरैक्शन प्रोफ़ाइल का इस्तेमाल करके यह मैनेज करता है कि आपका एक्सआर ऐप्लिकेशन, अलग-अलग एक्सआर डिवाइसों और प्लैटफ़ॉर्म के साथ कैसे कम्यूनिकेट करता है. ये प्रोफ़ाइलें, अलग-अलग हार्डवेयर कॉन्फ़िगरेशन के लिए ज़रूरी इनपुट और आउटपुट तय करती हैं. इससे कई प्लैटफ़ॉर्म पर, एक जैसी सुविधाएं और बेहतर परफ़ॉर्मेंस मिलती है. इंटरैक्शन प्रोफ़ाइलें चालू करके, यह पक्का किया जा सकता है कि आपका एक्सआर ऐप्लिकेशन अलग-अलग डिवाइसों के साथ सही तरीके से काम करे, इनपुट मैपिंग को एक जैसा बनाए रखे, और कुछ खास एक्सआर सुविधाओं को ऐक्सेस कर सके. इंटरैक्शन प्रोफ़ाइल सेट करने के लिए:

  1. Project Settings विंडो खोलें (मेन्यू: Edit > Project Settings).
  2. अगर ज़रूरी हो, तो प्लग-इन सेक्शन को बड़ा करने के लिए, XR Plug-in Management पर क्लिक करें.
  3. एक्सआर प्लग-इन की सूची में, OpenXR को चुनें.
  4. इंटरैक्शन प्रोफ़ाइल सेक्शन में, प्रोफ़ाइल जोड़ने के लिए + बटन को चुनें.
  5. सूची से वह प्रोफ़ाइल चुनें जिसे जोड़ना है.

हाथों से इंटरैक्ट करने की सुविधा

हाथ से इंटरैक्शन (XR_EXT_hand_interaction) की सुविधा, OpenXR प्लगिन से मिलती है. हाथ से इंटरैक्शन की प्रोफ़ाइल को चालू करके, Unity इनपुट सिस्टम में <HandInteraction> डिवाइस का लेआउट दिखाया जा सकता है. हाथ से इनपुट देने के लिए, इस इंटरैक्शन प्रोफ़ाइल का इस्तेमाल करें. यह OpenXR के तय किए गए चार ऐक्शन पोज़ के साथ काम करती है: "पिंच", "पोक", "एम", और "ग्रिप". अगर आपको हाथ से इंटरैक्ट करने या हाथ ट्रैक करने की सुविधा के बारे में ज़्यादा जानकारी चाहिए, तो इस पेज पर XR Hands पर जाएं.

आई गेज़ इंटरैक्शन

आई गेज़ इंटरैक्शन (XR_EXT_eye_gaze_interaction), OpenXR प्लग इन से मिलता है. इस लेआउट का इस्तेमाल करके, आंखों के पोज़ का डेटा (पोज़िशन और रोटेशन) वापस पाया जा सकता है. यह डेटा, एक्सटेंशन से मिलता है. OpenXR इनपुट गाइड में, आई गेज़ इंटरैक्शन के बारे में ज़्यादा जानें.

कंट्रोलर इंटरैक्शन

Android XR, 6DoF कंट्रोलर के लिए Oculus Touch Controller Profile के साथ काम करता है. ये दोनों प्रोफ़ाइलें, OpenXR प्लग इन से मिलती हैं.

माउस इंटरैक्शन

Android XR Mouse Interaction Profile (XR_ANDROID_mouse_interaction), Unity के लिए Android XR एक्सटेंशन से मिलती है. यह Unity इनपुट सिस्टम में <AndroidXRMouse> डिवाइस लेआउट को दिखाता है.

हथेली के जेस्चर से इंटरैक्शन

OpenXR प्लगिन, पाम पोज़ इंटरैक्शन (XR_EXT_palm_pose) के लिए सहायता उपलब्ध कराता है. इससे Unity इनपुट सिस्टम में <PalmPose> लेआउट दिखता है. हथेली की मुद्रा का इस्तेमाल, उन एक्सटेंशन या पैकेज के विकल्प के तौर पर नहीं किया जाना चाहिए जो ज़्यादा जटिल मामलों में हाथ ट्रैक करने की सुविधा देते हैं. इसके बजाय, इसका इस्तेमाल ऐप्लिकेशन के हिसाब से विज़ुअल कॉन्टेंट दिखाने के लिए किया जा सकता है. जैसे, अवतार के विज़ुअल. हथेली के पोज़ में, हथेली की पोज़िशन और ओरिएंटेशन, दोनों शामिल होते हैं.

एक्सआर हैंड

XR Hands पैकेज की मदद से, हाथ ट्रैक करने की सुविधा का डेटा ऐक्सेस किया जा सकता है. इसके लिए, XR_EXT_hand_tracking और XR_FB_hand_tracking_aim का इस्तेमाल किया जाता है. साथ ही, यह हाथ ट्रैक करने की सुविधा से मिले हाथ के जोड़ों के डेटा को इनपुट पोज़ में बदलने के लिए, एक रैपर उपलब्ध कराता है. XR Hands पैकेज में मौजूद सुविधाओं का इस्तेमाल करने के लिए, Hand Tracking Subsystem और 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;
        }
    }
}

ज़्यादा जानकारी के लिए, Unity के लिए Android XR एक्सटेंशन से जुड़ा दस्तावेज़ देखें.

हाथों को रेंडर करने का तरीका चुनें

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 के बारे में ज़्यादा जानकारी के लिए, Unity का Enum MetaAimFlags दस्तावेज़ देखें.

XR इंटरैक्शन टूलकिट

XR Interaction Toolkit पैकेज, वीआर और एआर अनुभव बनाने के लिए, कॉम्पोनेंट पर आधारित एक बेहतरीन इंटरैक्शन सिस्टम है. यह एक ऐसा फ़्रेमवर्क उपलब्ध कराता है जो Unity इनपुट इवेंट से 3D और यूज़र इंटरफ़ेस (यूआई) इंटरैक्शन उपलब्ध कराता है. यह इंटरैक्शन टास्क के साथ काम करता है. जैसे, हैप्टिक फ़ीडबैक, विज़ुअल फ़ीडबैक, और लोकोमोशन.


OpenXR™ और OpenXR लोगो, The Khronos Group Inc. के मालिकाना हक वाले ट्रेडमार्क हैं. इन्हें चीन, यूरोपियन यूनियन, जापान, और यूनाइटेड किंगडम में ट्रेडमार्क के तौर पर रजिस्टर किया गया है.