इस गाइड में, Android XR के लिए Unity का इस्तेमाल करके ऐप्लिकेशन बनाने के बारे में खास जानकारी दी गई है. Android XR, Unity के उन टूल और सुविधाओं के साथ काम करता है जो आपको Unity से मिलती हैं. साथ ही, Unity के Android XR सपोर्ट को OpenXR के आधार पर बनाया गया है. इसलिए, OpenXR की खास जानकारी में बताई गई कई सुविधाएं, Unity में भी काम करती हैं.
इस गाइड में आपको इनके बारे में जानकारी मिलेगी:
- Android XR के लिए Unity Support
- Unity XR की बुनियादी बातें
- Android XR के लिए ऐप्लिकेशन डेवलप और पब्लिश करना
- Android XR के लिए Unity पैकेज
- Unity OpenXR: Android XR पैकेज
- Unity के लिए Android XR एक्सटेंशन
- सुविधाएं और साथ काम करने की क्षमता से जुड़ी ज़रूरी बातें
- इनपुट और इंटरैक्शन
Android XR के लिए Unity की सहायता
Android XR के लिए Unity ऐप्लिकेशन बनाते समय, Unity 6 के नए वर्शन में मौजूद मिक्सड रिएलिटी टूल और सुविधाओं का फ़ायदा लिया जा सकता है. इनमें मिक्स्ड रिएलिटी टेंप्लेट शामिल हैं. ये टेंप्लेट, XR Interaction Toolkit, AR Foundation, और OpenXR Plugin का इस्तेमाल करते हैं, ताकि आप जल्दी से काम शुरू कर सकें. Android XR के लिए Unity की मदद से ऐप्लिकेशन बनाते समय, हमारा सुझाव है कि आप यूनिवर्सल रेंडर पाइपलाइन (यूआरपी) को रेंडर पाइपलाइन के तौर पर और Vulkan को Graphics API के तौर पर इस्तेमाल करें. इन सुविधाओं की मदद से, Unity की कुछ ग्राफ़िक्स सुविधाओं का फ़ायदा लिया जा सकता है. ये सुविधाएं सिर्फ़ Vulkan के साथ काम करती हैं. इन सेटिंग को कॉन्फ़िगर करने के तरीके के बारे में ज़्यादा जानने के लिए, प्रोजेक्ट सेटअप गाइड देखें.
Unity XR Basics
अगर आपको Unity या XR डेवलपमेंट के बारे में ज़्यादा जानकारी नहीं है, तो Unity का XR मैनुअल देखें. इससे आपको XR के बुनियादी कॉन्सेप्ट और वर्कफ़्लो के बारे में जानकारी मिलेगी. XR मैनुअल में इनके बारे में जानकारी होती है:
- XR की सुविधा देने वाले प्लग-इन. इनमें Unity OpenXR: Android XR और Unity के लिए Android XR एक्सटेंशन शामिल हैं
- ऐप्लिकेशन लेवल की अतिरिक्त सुविधाएं जोड़ने के लिए, एक्सआर सपोर्ट पैकेज
- XR आर्किटेक्चर गाइड, जिसमें Unity XR के टेक्नोलॉजी स्टैक और XR सबसिस्टम के बारे में बताया गया है
- एक्सआर प्रोजेक्ट सेट अप करना
- XR ऐप्लिकेशन बनाना और उन्हें चलाना
- XR ग्राफ़िक्स से जुड़ी गाइडलाइन. इनमें यूनिवर्सल रेंडर पाइपलाइन, स्टीरियो रेंडरिंग, फ़ोविएटेड रेंडरिंग, मल्टीव्यू रेंडर रीजन, और वीआर फ़्रेम टाइमिंग शामिल हैं
- XR ऑडियो गाइडेंस, जिसमें ऑडियो स्पेशलाइज़र के लिए सहायता शामिल है
Android के लिए ऐप्लिकेशन डेवलप और पब्लिश करना
Unity, Android के लिए ऐप्लिकेशन डेवलप करने, बनाने, और पब्लिश करने से जुड़ा पूरा दस्तावेज़ उपलब्ध कराता है. इसमें Unity में Android की अनुमतियां, Android की बिल्ड सेटिंग, Android के लिए ऐप्लिकेशन बनाना, और Google Play पर ऐप्लिकेशन उपलब्ध कराना जैसे विषय शामिल हैं.
Android XR के लिए Unity पैकेज
Android XR के लिए Unity ऐप्लिकेशन बनाने में मदद करने वाले दो पैकेज उपलब्ध हैं. ये दोनों पैकेज, XR सेवा देने वाले प्लग-इन हैं. इन्हें Unity के XR प्लग-इन मैनेजमेंट पैकेज के ज़रिए चालू किया जा सकता है. XR प्लग-इन मैनेजर, XR प्लग-इन के लिए प्रोजेक्ट सेटिंग जोड़ता है. इससे, XR प्लग-इन को लोड करने, शुरू करने, सेट करने, और बनाने में मदद मिलती है. आपके ऐप्लिकेशन को रनटाइम में OpenXR की सुविधाएं इस्तेमाल करने की अनुमति देने के लिए, प्रोजेक्ट में ये सुविधाएं चालू होनी चाहिए. इन्हें प्लग-इन मैनेजर के ज़रिए चालू किया जा सकता है.
इस इमेज में दिखाया गया है कि Unity के एडिटर के ज़रिए, इन सुविधा ग्रुप को कहां चालू किया जा सकता है.
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 एक्सटेंशन
Android XR Extensions for Unity, Unity OpenXR Android XR पैकेज का पूरक है. इसमें इमर्सिव एक्सपीरियंस बनाने में आपकी मदद करने के लिए अतिरिक्त सुविधाएं शामिल हैं. इसका इस्तेमाल अकेले या Unity OpenXR Android XR पैकेज के साथ किया जा सकता है.
इस पैकेज का इस्तेमाल शुरू करने के लिए, प्रोजेक्ट सेटअप करने से जुड़ी हमारी गाइड पढ़ें या Android XR Extensions for Unity को इंपोर्ट करने से जुड़ी क्विकस्टार्ट गाइड पढ़ें.
सुविधाएं और साथ काम करने की क्षमता से जुड़ी ज़रूरी बातें
यहां दी गई टेबल में, Unity OpenXR के साथ काम करने वाली सुविधाओं के बारे में बताया गया है. इनमें Android XR पैकेज और Android XR Extensions for Unity पैकेज शामिल हैं. इस टेबल का इस्तेमाल यह तय करने के लिए किया जा सकता है कि आपको जिन सुविधाओं की ज़रूरत है वे किस पैकेज में मौजूद हैं. साथ ही, यह भी देखा जा सकता है कि ये सुविधाएं आपके डिवाइस के साथ काम करती हैं या नहीं.
सुविधा |
Unity OpenXR: Android XR की सुविधा स्ट्रिंग |
Android XR Extensions for Unity की सुविधा स्ट्रिंग |
इस्तेमाल के उदाहरण और मॉडल के व्यवहार के बारे में जानकारी |
|---|---|---|---|
Android XR: एआर सेशन
|
Android XR (एक्सटेंशन): सेशन मैनेजमेंट
|
किसी भी पैकेज की सुविधाओं का इस्तेमाल करने के लिए, आपको उस पैकेज के लिए एआर सेशन की सुविधा चालू करनी होगी. दोनों सुविधा सेट एक साथ चालू किए जा सकते हैं. अलग-अलग सुविधाएं, टकरावों को अपने हिसाब से मैनेज करेंगी. |
|
लागू नहीं |
लागू नहीं |
डिवाइस ट्रैकिंग का इस्तेमाल, डिवाइस की पोज़िशन और फ़िज़िकल स्पेस में रोटेशन को ट्रैक करने के लिए किया जाता है. XR Origin GameObject, डिवाइस ट्रैकिंग को अपने-आप मैनेज करता है. साथ ही, XROrigin कॉम्पोनेंट और GameObject के क्रम का इस्तेमाल करके, ट्रैक किए जा सकने वाले ऑब्जेक्ट को Unity के कोऑर्डिनेट सिस्टम में बदलता है. इसमें कैमरा और TrackedPoseDriver शामिल होता है. |
|
Android XR: एआर कैमरा |
लागू नहीं |
इस सुविधा में, लाइट का अनुमान लगाने और फ़ुल स्क्रीन पासथ्रू की सुविधा काम करती है. |
|
Android XR: एआर प्लैन |
Android XR (एक्सटेंशन): प्लेन |
ये दोनों सुविधाएं एक जैसी हैं. इनमें से किसी एक का इस्तेमाल करें. Android XR (एक्सटेंशन): इसमें प्लेन शामिल है, ताकि डेवलपर Android XR (एक्सटेंशन): ऑब्जेक्ट ट्रैकिंग और परसिस्टेंट ऐंकर की सुविधाओं का इस्तेमाल कर सकें. इसके लिए, उन्हें Unity OpenXR Android XR पैकेज पर निर्भर रहने की ज़रूरत नहीं होगी. आने वाले समय में, Android XR (एक्सटेंशन): प्लेन को हटा दिया जाएगा. इसके बजाय, Android XR: एआर ऐंकर का इस्तेमाल किया जाएगा. |
|
लागू नहीं |
Android XR (एक्सटेंशन): ऑब्जेक्ट ट्रैकिंग |
इस सुविधा की मदद से, आस-पास के माहौल में मौजूद ऑब्जेक्ट का पता लगाया जा सकता है और उन्हें ट्रैक किया जा सकता है. इसका इस्तेमाल, रेफ़रंस ऑब्जेक्ट लाइब्रेरी के साथ किया जाता है. |
|
Android XR: एआर फ़ेस
|
Android XR: चेहरा ट्रैक करने की सुविधा
|
अवतार की आंखों को कंट्रोल करने की सुविधा, Android XR: AR Face की मदद से मिलती है. Android XR: फ़ेस ट्रैकिंग की सुविधा के ज़रिए, उपयोगकर्ता के चेहरे के हाव-भाव ऐक्सेस करना. इन दोनों सुविधाओं का एक साथ इस्तेमाल किया जा सकता है. |
|
Android XR: AR Raycast
|
लागू नहीं |
इस सुविधा की मदद से, किसी किरण को कास्ट किया जा सकता है. साथ ही, उस किरण और फ़िज़िकल एनवायरमेंट में पता लगाए गए प्लेन ट्रैक करने लायक ऑब्जेक्ट या डेप्थ ट्रैक करने लायक ऑब्जेक्ट के बीच इंटरसेक्शन की गिनती की जा सकती है. |
|
Android XR: एआर ऐंकर |
Android XR (एक्सटेंशन): ऐंकर
|
इन दोनों सुविधाओं में, स्पैटियल ऐंकर और प्लेन ऐंकर की सुविधा काम करती है. इनमें से किसी एक सुविधा का इस्तेमाल करें. परसिस्टेंट ऐंकर के लिए, Android XR (एक्सटेंशन): ऐंकर का इस्तेमाल करें. आने वाले समय में, Android XR (एक्सटेंशन): ऐंकर को हटा दिया जाएगा. साथ ही, ऐंकर की सभी सुविधाएं Android XR: एआर ऐंकर में उपलब्ध होंगी. |
|
Android XR: एआर ऑक्लूज़न
|
लागू नहीं |
ऑक्लूज़न की सुविधा की मदद से, आपके ऐप्लिकेशन में मौजूद मिक्स्ड रिएलिटी कॉन्टेंट को, असल दुनिया के ऑब्जेक्ट के पीछे छिपाया जा सकता है या उसे आंशिक रूप से धुंधला किया जा सकता है. |
|
परफ़ॉर्मेंस मेट्रिक |
Android XR की परफ़ॉर्मेंस मेट्रिक |
लागू नहीं |
Android XR डिवाइसों की परफ़ॉर्मेंस मेट्रिक ऐक्सेस करने के लिए, इस सुविधा का इस्तेमाल करें. |
कंपोज़िशन लेयर की सुविधा (इसके लिए, OpenXR प्लगिन और XR कंपोज़िशन लेयर ज़रूरी है) |
Android XR: पासथ्रू कंपोज़िशन लेयर
|
Unity के कंपोज़िशन लेयर सपोर्ट का इस्तेमाल करके, बुनियादी कंपोज़िशन लेयर बनाएं. जैसे, क्वाड, सिलिंडर, प्रोजेक्शन. Android XR: Passthrough Composition Layer का इस्तेमाल, कस्टम मेश वाली पासथ्रू लेयर बनाने के लिए किया जा सकता है. यह Unity के GameObject से डेटा पढ़ती है. |
|
फ़ोविएटेड रेंडरिंग (OpenXR प्लगिन ज़रूरी है)
|
फ़ोविएशन (लेगसी) |
फ़ोविएटेड रेंडरिंग की मदद से, रेंडरिंग की प्रोसेस को तेज़ किया जा सकता है. इसके लिए, उपयोगकर्ता की पेरिफ़ेरल विज़न (आंखों के कोनों से दिखने वाली जगह) में मौजूद इमेज का रिज़ॉल्यूशन कम किया जाता है. Unity की फ़ोविएटेड रेंडरिंग सुविधा, सिर्फ़ URP और Vulkan का इस्तेमाल करने वाले ऐप्लिकेशन के लिए उपलब्ध है. Android XR Extensions for Unity में मौजूद Foveation (लेगसी) सुविधा, Built-in Render Pipeline और OpenGL ES को भी सपोर्ट करती है. हमारा सुझाव है कि जब भी हो सके, Unity की फ़ोविएटेड रेंडरिंग सुविधा का इस्तेमाल करें. साथ ही, ध्यान दें कि Android XR के लिए ऐप्लिकेशन बनाते समय, URP और Vulkan, दोनों का इस्तेमाल करने का सुझाव दिया जाता है. |
|
लागू नहीं |
यह सुविधा, XRInputSubsystem के ट्रैकिंग ओरिजिन मोड को Unbounded पर सेट करती है. अनबाउंड का मतलब है कि XRInputSubsystem, दुनिया के ऐंकर के हिसाब से सभी InputDevices को ट्रैक करता है. इसमें बदलाव किया जा सकता है. |
||
लागू नहीं |
एनवायरमेंट ब्लेंड मोड |
इस सुविधा की मदद से, एक्सआर एनवायरमेंट ब्लेंड मोड सेट किया जा सकता है. इससे यह कंट्रोल किया जा सकता है कि पास-थ्रू मोड चालू होने पर, वर्चुअल इमेज असल दुनिया के एनवायरमेंट के साथ कैसे ब्लेंड होती है. |
|
लागू नहीं |
इस कुकी की मदद से, |
||
लागू नहीं |
यह कुकी, क्लाउड-बैकअप वाली सेवाओं के लिए, सेशन की पुष्टि करने की कॉन्फ़िगरेशन रणनीतियां (एपीआई पासकोड, बिना पासकोड के और पुष्टि करने वाला टोकन) उपलब्ध कराती है. |
||
लागू नहीं |
यह Unity ARFace को कॉन्फ़िगर की जा सकने वाली, मल्टीमॉडल फ़ेस-ट्रैकिंग की सुविधाओं ( |
||
लागू नहीं |
इस सुविधा की मदद से, कनेक्ट किए गए कंट्रोलर और इनपुट पाथ के रनटाइम बैटरी स्टेटस और चार्ज लेवल के बारे में क्वेरी की जा सकती है. इसके लिए, |
||
Android XR: एआर कैमरा |
लागू नहीं |
इस सुविधा की मदद से, Unity के ARCameraFeature का इस्तेमाल करके, असल दुनिया के पासथ्रू डिमिंग लेवल को क्वेरी और सेट किया जा सकता है. |
|
लागू नहीं |
यह |
||
लागू नहीं |
इस अनुमति से, |
इनपुट और इंटरैक्शन
Android XR में, कई तरह के नैचुरल इनपुट का इस्तेमाल किया जा सकता है.
इसमें हाथ और आई ट्रैकिंग की सुविधा के साथ-साथ, 6DoF कंट्रोलर, माउस, और फ़िज़िकल कीबोर्ड जैसे सहायक डिवाइसों का इस्तेमाल भी किया जा सकता है. इसका मतलब है कि Android XR के लिए बने ऐप्लिकेशन में, हाथ के जेस्चर (हाव-भाव) से इंटरैक्ट करने की सुविधा होनी चाहिए. यह नहीं माना जा सकता कि सभी डिवाइसों में कंट्रोलर होंगे.
इंटरैक्शन प्रोफ़ाइलें
Unity, इंटरैक्शन प्रोफ़ाइल का इस्तेमाल करता है. इससे यह मैनेज किया जाता है कि आपका XR ऐप्लिकेशन, अलग-अलग XR डिवाइसों और प्लैटफ़ॉर्म से कैसे कम्यूनिकेट करता है. इन प्रोफ़ाइलों से, अलग-अलग हार्डवेयर कॉन्फ़िगरेशन के लिए अनुमानित इनपुट और आउटपुट तय किए जाते हैं. इससे, अलग-अलग प्लैटफ़ॉर्म पर कंपैटिबिलिटी और एक जैसी फ़ंक्शनैलिटी को बढ़ावा मिलता है. इंटरैक्शन प्रोफ़ाइलें चालू करके, यह पक्का किया जा सकता है कि आपका एक्सआर ऐप्लिकेशन अलग-अलग डिवाइसों के साथ सही तरीके से काम करे, इनपुट मैपिंग को एक जैसा बनाए रखे, और उसके पास एक्सआर की खास सुविधाओं का ऐक्सेस हो. इंटरैक्शन प्रोफ़ाइल सेट करने के लिए:
- प्रोजेक्ट सेटिंग विंडो खोलें (मेन्यू: बदलाव करें > प्रोजेक्ट सेटिंग).
- अगर ज़रूरी हो, तो प्लग-इन सेक्शन को बड़ा करने के लिए, XR प्लग-इन मैनेजमेंट पर क्लिक करें.
- एक्सआर प्लग-इन की सूची में, OpenXR को चुनें.
- इंटरैक्शन प्रोफ़ाइलें सेक्शन में जाकर, प्रोफ़ाइल जोड़ने के लिए + बटन को चुनें.
- सूची से वह प्रोफ़ाइल चुनें जिसे जोड़ना है.
हाथ के मूवमेंट से इंटरैक्ट करने की सुविधा
हाथ के जेस्चर (XR_EXT_hand_interaction) की सुविधा OpenXR प्लगिन से मिलती है. साथ ही, हाथ के जेस्चर की सुविधा वाली प्रोफ़ाइल को चालू करके, Unity Input System में <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)
Android XR Extensions for Unity की मदद से उपलब्ध कराई जाती है. यह Unity Input System में <AndroidXRMouse> डिवाइस लेआउट दिखाता है.
हथेली के पोज़ से इंटरैक्शन करने की सुविधा
OpenXR प्लगिन, हथेली के पोज़ से इंटरैक्ट करने (XR_EXT_palm_pose) की सुविधा देता है. इससे Unity Input System में <PalmPose> लेआउट दिखता है.
हथेली की पोज़ वाली सुविधा, एक्सटेंशन या पैकेज का विकल्प नहीं है. ये एक्सटेंशन या पैकेज, ज़्यादा जटिल इस्तेमाल के मामलों के लिए हाथ ट्रैक करने की सुविधा देते हैं. इसके बजाय, इस सुविधा का इस्तेमाल ऐप्लिकेशन के हिसाब से विज़ुअल कॉन्टेंट दिखाने के लिए किया जा सकता है. जैसे, अवतार के विज़ुअल. हथेली की पोज़ में, हथेली की पोज़िशन और ओरिएंटेशन, दोनों शामिल होते हैं.
XR Hands
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;
}
}
}
ज़्यादा जानकारी के लिए, Android XR Extensions for Unity का दस्तावेज़ देखें.
हाथों को रेंडर करने का तरीका चुनना
Android XR में, हाथों को दो तरह से रेंडर किया जा सकता है: हैंड मेश और प्रीफ़ैब विज़ुअलाइज़र.
हैंड मेश
Android XR Unity पैकेज में हैंड मेश की सुविधा होती है. इससे XR_ANDROID_hand_mesh extension को ऐक्सेस किया जा सकता है. हैंड मेश सुविधा, उपयोगकर्ता के हाथों के लिए मेश उपलब्ध कराती है. हाथ के मेश में, ऐसे त्रिकोणों के वर्टिसिज़ होते हैं जो हाथ की ज्यामिति को दिखाते हैं. इस सुविधा का इस्तेमाल, उपयोगकर्ता के हाथों की असली ज्यामिति दिखाने वाले, लोगों के हिसाब से बनाए गए मेश को दिखाने के लिए किया जाता है.
XR Hands प्रीफ़ैब
XR Hands पैकेज में Hands visualizer नाम का एक सैंपल होता है. इसमें बाएं और दाएं हाथ के पूरी तरह से रिग्ड मॉडल होते हैं. इनकी मदद से, उपयोगकर्ता के हाथों को कॉन्टेक्स्ट के हिसाब से दिखाया जाता है.
सिस्टम जेस्चर
Android XR में, सिस्टम जेस्चर की सुविधा शामिल है. इसकी मदद से, उपयोगकर्ता मेन्यू खोल सकते हैं. इस मेन्यू में, उन्हें वापस जाने, लॉन्चर खोलने या चल रहे ऐप्लिकेशन की खास जानकारी देखने का विकल्प मिलता है. उपयोगकर्ता, अपने मुख्य हाथ से पिंच करके इस सिस्टम मेन्यू को चालू कर सकता है.
जब उपयोगकर्ता सिस्टम नेविगेशन मेन्यू के साथ इंटरैक्ट कर रहा होता है, तब ऐप्लिकेशन सिर्फ़ हेड ट्रैकिंग इवेंट का जवाब देगा. XR Hands पैकेज यह पता लगा सकता है कि उपयोगकर्ता कब कोई खास कार्रवाई करता है. जैसे, इस सिस्टम नेविगेशन मेन्यू से इंटरैक्ट करना. AimFlags, SystemGesture, और DominantHand की जांच करने से आपको यह पता चलता है कि सिस्टम ने यह कार्रवाई कब की. AimFlags के बारे में ज़्यादा जानकारी के लिए, Unity का Enum MetaAimFlags दस्तावेज़ देखें.
XR Interaction Toolkit
XR Interaction Toolkit पैकेज, VR और AR अनुभव बनाने के लिए, कॉम्पोनेंट पर आधारित एक इंटरैक्शन सिस्टम है. यह एक फ़्रेमवर्क उपलब्ध कराता है. इससे Unity के इनपुट इवेंट से 3D और यूज़र इंटरफ़ेस (यूआई) इंटरैक्शन उपलब्ध होते हैं. यह हैप्टिक फ़ीडबैक, विज़ुअल फ़ीडबैक, और लोकोमोशन जैसे इंटरैक्शन टास्क के साथ काम करता है.
OpenXR™ और OpenXR लोगो, The Khronos Group Inc. के ट्रेडमार्क हैं. इन्हें चीन, यूरोपियन यूनियन, जापान, और यूनाइटेड किंगडम में ट्रेडमार्क के तौर पर रजिस्टर किया गया है.