מדריך למתחילים בנושא Google Cardboard ל-Unity

במדריך הזה מוסבר איך להשתמש בפלאגין Google Cardboard XR ל-Unity כדי ליצור חוויות מציאות מדומה (VR) משלכם.

תוכלו להשתמש ב-Cardboard SDK כדי להפוך טלפון נייד לפלטפורמת VR. סמארטפון יכול להציג סצנות בתלת ממד עם רינדור סטריאוסקופי, לעקוב אחרי תנועות הראש ולהגיב להן, וליצור אינטראקציה עם אפליקציות על ידי זיהוי כשמשתמש לוחץ על לחצן הצופה.

כדי להתחיל להשתמש ב-HelloCardboard, משחק הדגמה (דמו) שמדגים את תכונות הליבה של Cardboard SDK. במשחק, משתמשים מסתכלים ברחבי עולם וירטואלי כדי למצוא ולאסוף אובייקטים. הוא מראה כיצד:

  • הגדרת סביבת הפיתוח
  • הורדה ובנייה של אפליקציית ההדגמה
  • צריך לסרוק את קוד ה-QR של מכשיר Cardboard כדי לשמור את הפרמטרים שלו
  • מעקב אחר תנועות הראש של המשתמש
  • עבד תמונות סטריאוסקופיות על ידי הגדרת העיוות הנכון לכל עין
  • הפעלה והשבתה של מצב VR

הגדרת סביבת הפיתוח

דרישות התוכנה:

ייבוא של ה-SDK ויצירת פרויקט חדש

כדי לייבא את Unity SDK וליצור פרויקט חדש, מבצעים את הפעולות הבאות.

  1. פותחים את Unity ויוצרים פרויקט תלת-ממדי חדש.
  2. ב-Unity, עוברים אל חלון > מנהל החבילות.
  3. לוחצים על + ובוחרים באפשרות Add package from git URL (הוספת חבילה מ-Git URL).
  4. מדביקים את https://github.com/googlevr/cardboard-xr-plugin.git בשדה הזנת הטקסט.
    יש להוסיף את החבילה לחבילות המותקנות.
  5. מנווטים אל החבילה של Google Cardboard XR Plugin for Unity. בקטע Samples (דוגמאות), בוחרים באפשרות Import to Project (ייבוא ל-Project).
    יש לטעון את הנכסים לדוגמה ב-Assets/Samples/Google Cardboard/<version>/Hello Cardboard.

הגדרת סצנת HelloCardboard

  1. מנווטים אל Assets/Samples/Google Cardboard/<version>/Hello Cardboard/Scenes, בוחרים באפשרות Add Open Brights (הוספת סצנות פתוחות) ואז בוחרים באפשרות HelloCardboard כדי לפתוח את הסצנה לדוגמה.
  2. פותחים את התפריט שכבות ובוחרים באפשרות עריכת שכבות....
  3. מגדירים שכבה חדשה בשם 'אינטראקטיבית'.
  4. לוחצים על Treasure GameObject כדי לפתוח את חלון ה-Inspector. מגדירים את השכבה בתור 'Interactive'. אם מופיע חלון קופץ ששואל אם רוצים להגדיר את השכבה 'אינטראקטיבית' גם לכל האובייקטים של הצאצא, לוחצים על 'כן, אני רוצה לשנות ילדים'.
  5. לוחצים על GameObject נגן > מצלמה > CardboardReticlePointer כדי לפתוח את חלון ה-Inspector. בסקריפט 'מצביע הרשת של Carboard', בחרו באפשרות 'Interactive' (אינטראקטיבי) בתור Reticle Interaction Layer Mask.

קביעת הגדרות לפרויקט Android

עוברים אל קובץ > הגדרות Build.

  1. בוחרים באפשרות Android ולאחר מכן באפשרות החלפת פלטפורמה.
  2. בוחרים באפשרות הוספת סצנות פתוחות ובוחרים באפשרות HelloCardboard.

הגדרות הנגן

רזולוציה ומצגת

עוברים אל Project Settings (הגדרות הפרויקט) > Player (נגן) > רזולוציה ו-מצגת.

  1. מגדירים את כיוון ברירת המחדל של האפשרויות לרוחב שמאל או לרוחב ימין.
  2. משביתים את האפשרות אופטימיזציה של קצב הפריימים.

הגדרות אחרות

עוברים אל הגדרות הפרויקט > נגן > הגדרות אחרות.

  1. בוחרים את OpenGLES2, OpenGLES3 או Vulkan, או כל שילוב שלהם ב-Graphics APIs.
  2. בוחרים באפשרות Android 8.0 'Oreo' (API level 26) ואילך בקטע Minimum API Level.
  3. יש לבחור ב-API level 33 ומעלה ברמת ה-API לטירגוט.
  4. בחר IL2CPP בקצה העורפי של סקריפטים.
  5. בוחרים את הארכיטקטורות הרצויות על ידי בחירה ב-ARMv7, ב-ARM64 או בשתיהן ב-Target Architectures.
  6. בוחרים באפשרות Require בקטע גישה לאינטרנט.
  7. מציינים את דומיין החברה בקטע Package Name.
  8. אם Vulkan נבחר בתור Graphics API:
    • מבטלים את הסימון בתיבה Apply display rotation בזמן העיבוד לתיבת הסימון Vulkan.
    • אם גרסת Unity היא 2021.2 ואילך, בוחרים את ETC2 בפורמט דחיסת טקסטורה.
  9. אם גרסת Unity היא 2023.1 ואילך, בוחרים באפשרות Activity ומנקים את GameActivity בנקודת הכניסה לאפליקציה.

הגדרות פרסום

עוברים אל Project Settings (הגדרות הפרויקט) > Player (נגן) > Publishing Settings (הגדרות הפרסום).

  1. בקטע Build, בוחרים את 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.6.1'
      implementation 'com.google.protobuf:protobuf-javalite:3.19.4'
    
  3. מוסיפים את השורות הבאות אל Assets/Plugins/Android/gradleTemplate.properties:

      android.enableJetifier=true
      android.useAndroidX=true
    

הגדרות ניהול יישומי XR

עוברים אל Project Settings (הגדרות הפרויקט) > XR Plug-in Management (ניהול יישומי XR).

  1. בוחרים באפשרות Cardboard XR Plugin בקטע ספקי יישומי פלאגין.

בניית הפרויקט

עוברים אל קובץ > הגדרות Build.

  1. בוחרים באפשרות Build (פיתוח) או בוחרים מכשיר ובוחרים באפשרות Build and Run (יצירה והפעלה).

קביעת הגדרות לפרויקט iOS

עוברים אל קובץ > הגדרות Build.

  1. בוחרים באפשרות iOS ובוחרים באפשרות החלפת פלטפורמה.
  2. בוחרים באפשרות הוספת סצנות פתוחות ובוחרים באפשרות HelloCardboard.

הגדרות הנגן

רזולוציה ומצגת

עוברים אל Project Settings (הגדרות הפרויקט) > Player (נגן) > רזולוציה ו-מצגת.

  1. מגדירים את כיוון ברירת המחדל של האפשרויות לרוחב שמאל או לרוחב ימין.

הגדרות אחרות

עוברים אל הגדרות הפרויקט > נגן > הגדרות אחרות.

  1. בקטע תיאור השימוש במצלמה, כותבים Cardboard SDK requires camera permission to read the QR code (required to get the encoded device parameters)..
  2. בקטע TargetMinimum בגרסת iOS, צריך לכתוב 12.0.
  3. מציינים את דומיין החברה בקטע Package Name.

הגדרות ניהול יישומי XR

עוברים אל Project Settings (הגדרות הפרויקט) > XR Plug-in Management (ניהול יישומי XR).

  1. בוחרים באפשרות Cardboard XR Plugin בקטע ספקי יישומי פלאגין.

בניית הפרויקט

עוברים אל קובץ > הגדרות Build.

  1. בוחרים באפשרות Build (פיתוח) או Build and Run (יצירה והפעלה).

מרכוז מחדש

באמצעות Cardboard SDK תוכלו למרכז מחדש את מכשיר המעקב אחר הראש באמצעות Recenter().

כדי להתנסות בו באמצעות האפליקציה לדוגמה, מבצעים את השלבים הבאים:

  1. מזיזים את המכשיר למיקום שרוצים למרכז מחדש (שימוש כתנוחת ראש חדשה שמביטה קדימה).
  2. החזיקו את ההדק של מכשיר Cardboard פעיל למשך שלוש שניות לפחות.
  3. משחררים את הטריגר.
  4. התנוחה הראשונית היא עכשיו לכיוון שאליו המצלמה פונה.

הפעלה והשבתה של מצב VR

ה-API לניהול Unity XR Plugin מאפשר להפעיל או להשבית את מצב VR עבור הפלאגין Google Cardboard XR עבור Unity. תיעוד של משתמשי קצה ודוגמאות לשימוש זמינים במסמכי התיעוד למשתמשי קצה של Unity.

בסצנה VrMode בדוגמת HelloCardboard מוצג שימוש בסיסי ב-API שהוזכר למעלה. בסצנה הזו, אפשר לכבות את מצב VR על ידי הקשה על יציאה . אפשר להפעיל אותו שוב פשוט על ידי הקשה במקום כלשהו במסך. פרטים על הביצועים האלה מופיעים ב-VrModeController.cs.

השלבים הבאים