Unity के लिए Google Cardboard के लिए क्विकस्टार्ट

इस गाइड में, Unity के लिए Google Cardboard XR प्लग इन का इस्तेमाल करने का तरीका बताया गया है. इसकी मदद से, वर्चुअल रिएलिटी (वीआर) के अनुभव बनाए जा सकते हैं.

Cardboard SDK टूल का इस्तेमाल करके, मोबाइल फ़ोन को एक वर्चुअल रिएलिटी (वीआर) प्लैटफ़ॉर्म में बदला जा सकता है. स्मार्टफ़ोन, स्टीरियोस्कोपिक रेंडरिंग की मदद से 3D सीन दिखा सकता है. साथ ही, सिर की हरकत को ट्रैक करके उस पर प्रतिक्रिया दे सकता है. इसके अलावा, उपयोगकर्ता के व्यूअर बटन को दबाने पर, ऐप्लिकेशन के साथ इंटरैक्ट कर सकता है.

शुरू करने के लिए, आपको HelloCardboard का इस्तेमाल करना होगा. यह एक डेमो गेम है, जिसमें Cardboard SDK टूल की मुख्य सुविधाओं के बारे में बताया गया है. इस गेम में, उपयोगकर्ता किसी वर्चुअल दुनिया में ऑब्जेक्ट ढूंढते और इकट्ठा करते हैं. इस गाइड से, आपको इन कामों के बारे में जानकारी मिलेगी:

  • डेवलपमेंट एनवायरमेंट सेट अप करना
  • डेमो ऐप्लिकेशन डाउनलोड और बनाना
  • Cardboard व्यूअर के पैरामीटर सेव करने के लिए, उसका क्यूआर कोड स्कैन करना
  • उपयोगकर्ता के सिर की हरकतें ट्रैक करना
  • हर आंख के लिए सही डिस्टॉर्शन सेट करके, स्टीरियोस्कोपिक इमेज रेंडर करना
  • वीआर मोड को चालू या बंद करना

डेवलपमेंट एनवायरमेंट सेट अप करना

सॉफ़्टवेयर से जुड़ी ज़रूरी शर्तें:

  • Unity 2021.3.44f1 या इसके बाद का वर्शन
    • इंस्टॉलेशन के दौरान, Android और iOS के लिए बने बिल्ड सपोर्ट को शामिल करना न भूलें.
    • पक्का करें कि आपने पैच का 44f1 या उसके बाद का वर्शन इंस्टॉल किया हो.
  • Git इंस्टॉल होना चाहिए और git एक्सीक्यूटेबल, PATH एनवायरमेंट वैरिएबल पर होना चाहिए. ज़्यादा जानकारी के लिए, Unity के पैकेज मैनेजर के लिए git के इस्तेमाल से जुड़ी सहायता से जुड़े दस्तावेज़ देखें.

SDK टूल इंपोर्ट करना और नया प्रोजेक्ट बनाना

Unity SDK टूल इंपोर्ट करने और नया प्रोजेक्ट बनाने के लिए, यह तरीका अपनाएं.

  1. Unity खोलें और नया 3D प्रोजेक्ट बनाएं.
  2. Unity में, विंडो > पैकेज मैनेजर पर जाएं.
  3. + पर क्लिक करें और git यूआरएल से पैकेज जोड़ें चुनें.
  4. टेक्स्ट एंट्री फ़ील्ड में https://github.com/googlevr/cardboard-xr-plugin.git चिपकाएं.
    पैकेज को इंस्टॉल किए गए पैकेज में जोड़ा जाना चाहिए.
  5. Unity के लिए Google Cardboard XR प्लगिन पैकेज पर जाएं. सैंपल सेक्शन में, प्रोजेक्ट में इंपोर्ट करें चुनें.
    सैंपल ऐसेट को Assets/Samples/Google Cardboard/<version>/Hello Cardboard में लोड किया जाना चाहिए.

HelloCardboard सीन को कॉन्फ़िगर करना

  1. Assets/Samples/Google Cardboard/<version>/Hello Cardboard/Scenes पर जाएं और ओपन सीन जोड़ें को चुनें. इसके बाद, सैंपल सीन खोलने के लिए HelloCardboard चुनें.
  2. लेयर मेन्यू खोलें और लेयर में बदलाव करें... को चुनें.
  3. "इंटरैक्टिव" नाम की एक नई लेयर बनाएं.
  4. इंस्पेक्टर विंडो खोलने के लिए, खजाना गेम ऑब्जेक्ट पर क्लिक करें. इसकी लेयर को "इंटरैक्टिव" पर सेट करें. अगर कोई पॉप-अप विंडो दिखती है, जिसमें आपसे पूछा जाए कि क्या आपको सभी चाइल्ड ऑब्जेक्ट के लिए भी लेयर को इंटरैक्टिव पर सेट करना है, तो "हां, चाइल्ड ऑब्जेक्ट बदलें" पर क्लिक करें.
  5. Inspector विंडो खोलने के लिए, Player > Camera > CardboardReticlePointer गेम ऑब्जेक्ट पर क्लिक करें. "Carboard रेटिकल पॉइंटर" स्क्रिप्ट में, रेटिकल इंटरैक्शन लेयर मास्क के तौर पर "इंटरैक्टिव" चुनें.

Android प्रोजेक्ट की सेटिंग कॉन्फ़िगर करना

फ़ाइल > बिल्ड सेटिंग पर जाएं.

  1. Android चुनें और प्लैटफ़ॉर्म स्विच करें को चुनें.
  2. ओपन सीन जोड़ें को चुनें और HelloCardboard चुनें.

प्लेयर की सेटिंग

समस्या का हल और प्रज़ेंटेशन

प्रोजेक्ट सेटिंग > प्लेयर > रिज़ॉल्यूशन और प्रज़ेंटेशन पर जाएं.

  1. डिफ़ॉल्ट ओरिएंटेशन को लैंडस्केप लेफ़्ट या लैंडस्केप राइट पर सेट करें.
  2. ऑप्टिमाइज़ की गई फ़्रेम पेसिंग की सुविधा बंद करें.

अन्य सेटिंग

प्रोजेक्ट सेटिंग > प्लेयर > अन्य सेटिंग पर जाएं.

  1. ग्राफ़िक्स एपीआई में, OpenGLES2, OpenGLES3 या Vulkan या इनमें से किसी भी कॉम्बिनेशन को चुनें.
  2. कम से कम एपीआई लेवल में, Android 8.0 'Oreo' (API level 26) या उससे ज़्यादा चुनें.
  3. टारगेट एपीआई लेवल में, API level 33 या उससे ज़्यादा चुनें.
  4. स्क्रिप्टिंग बैकएंड में IL2CPP चुनें.
  5. टारगेट किए गए आर्किटेक्चर में ARMv7, ARM64 या दोनों को चुनकर, अपनी पसंद के आर्किटेक्चर चुनें.
  6. इंटरनेट ऐक्सेस में जाकर, Require चुनें.
  7. सक्रिय इनपुट हैंडलिंग में जाकर, Input System Package (New) चुनें.
  8. पैकेज का नाम में जाकर, अपनी कंपनी का डोमेन डालें.
  9. अगर Vulkan को Graphics API के तौर पर चुना गया था, तो:
    • Vulkan सेटिंग में जाकर, रेंडरिंग के दौरान डिसप्ले रोटेशन लागू करें चेकबॉक्स से सही का निशान हटाएं.
    • अगर Unity का वर्शन 2021.2 या इसके बाद का है, तो टेक्स्चर के लिए इस्तेमाल होने वाले कमप्रेशन फ़ॉर्मैट में ETC2 चुनें.
  10. अगर Unity का वर्शन 2023.1 या उसके बाद का है, तो ऐप्लिकेशन एंट्री पॉइंट में Activity को चुनें और GameActivity को हटाएं.

पब्लिश करने की सेटिंग

प्रोजेक्ट सेटिंग > प्लेयर > पब्लिश करने की सेटिंग पर जाएं.

  1. बिल्ड सेक्शन में, Custom Main Gradle Template और Custom Gradle Properties Template चुनें.
  2. 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.12.0'
      implementation 'com.google.protobuf:protobuf-javalite:3.19.4'
    
  3. Assets/Plugins/Android/gradleTemplate.properties में ये लाइनें जोड़ें:

      android.enableJetifier=true
      android.useAndroidX=true
    

एक्सआर प्लग-इन मैनेजमेंट सेटिंग

प्रोजेक्ट सेटिंग > एक्सआर प्लग-इन मैनेजमेंट पर जाएं.

  1. प्लग-इन की सेवा देने वाली कंपनियां में जाकर, Cardboard XR Plugin चुनें.

अपना प्रोजेक्ट बनाना

फ़ाइल > बिल्ड सेटिंग पर जाएं.

  1. बिल्ड करें को चुनें या कोई डिवाइस चुनें और बिल्ड करें और चलाएं को चुनें.

iOS प्रोजेक्ट की सेटिंग कॉन्फ़िगर करना

फ़ाइल > बिल्ड सेटिंग पर जाएं.

  1. iOS चुनें और प्लैटफ़ॉर्म स्विच करें को चुनें.
  2. ओपन सीन जोड़ें को चुनें और HelloCardboard चुनें.

प्लेयर की सेटिंग

समस्या का हल और प्रज़ेंटेशन

प्रोजेक्ट सेटिंग > प्लेयर > रिज़ॉल्यूशन और प्रज़ेंटेशन पर जाएं.

  1. डिफ़ॉल्ट ओरिएंटेशन को लैंडस्केप लेफ़्ट या लैंडस्केप राइट पर सेट करें.

अन्य सेटिंग

प्रोजेक्ट सेटिंग > प्लेयर > अन्य सेटिंग पर जाएं.

  1. कैमरे के इस्तेमाल की जानकारी में, Cardboard SDK requires camera permission to read the QR code (required to get the encoded device parameters). लिखें.
  2. टारगेट किया गया कम से कम iOS वर्शन में, 12.0 लिखें.
  3. पैकेज का नाम में जाकर, अपनी कंपनी का डोमेन डालें.

एक्सआर प्लग-इन मैनेजमेंट सेटिंग

प्रोजेक्ट सेटिंग > एक्सआर प्लग-इन मैनेजमेंट पर जाएं.

  1. प्लग-इन की सेवा देने वाली कंपनियां में जाकर, Cardboard XR Plugin चुनें.

अपना प्रोजेक्ट बनाना

फ़ाइल > बिल्ड सेटिंग पर जाएं.

  1. बिल्ड करें या बिल्ड करें और चलाएं को चुनें.

फिर से बीच में लाना

Cardboard SDK की मदद से, Recenter() का इस्तेमाल करके हेड ट्रैकर को फिर से केंद्र में लाया जा सकता है.

सैंपल ऐप्लिकेशन का इस्तेमाल करके, इसे आज़माने के लिए यह तरीका अपनाएं:

  1. डिवाइस को उस जगह पर ले जाएं जहां आपको उसे फिर से सेंटर करना है. इसके लिए, नए 'आगे की ओर देखना' पोज़ का इस्तेमाल करें.
  2. अपने Cardboard डिवाइस के ट्रिगर को कम से कम तीन सेकंड तक दबाकर रखें.
  3. ट्रिगर को छोड़ें.
  4. शुरुआती पोज़ अब उसी दिशा में है जिस दिशा में कैमरा है.

वीआर मोड को चालू और बंद करना

Unity XR प्लग इन मैनेजमेंट एपीआई की मदद से, Unity के लिए Google Cardboard XR प्लग इन के लिए, वर्चुअल रिएलिटी मोड को चालू या बंद किया जा सकता है. असली उपयोगकर्ता के लिए दस्तावेज़ और इस्तेमाल के उदाहरण, Unity के असली उपयोगकर्ता के लिए दस्तावेज़ में उपलब्ध हैं.

HelloCardboard सैंपल में VrMode सीन, ऊपर बताए गए एपीआई के बुनियादी इस्तेमाल को दिखाता है. इस सीन में, बाहर निकलें पर टैप करके वीआर मोड को बंद किया जा सकता है. साथ ही, स्क्रीन पर कहीं भी टैप करके इसे फिर से चालू किया जा सकता है. इसे करने का तरीका जानने के लिए, VrModeController.cs देखें.

अगले चरण