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

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

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

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

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

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

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

  • Unity 2021.3.44f1 ואילך
    • חשוב לכלול תמיכה ב-Android וב-iOS Build במהלך ההתקנה.
    • חשוב להתקין את תיקון הגרסה 44f1 ואילך.
  • צריך להתקין את Git וקובץ ההפעלה git צריך להיות במשתנה הסביבה PATH. פרטים נוספים זמינים במסמכים של התמיכה של מנהל החבילות של Unity ב-git.

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

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

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

הגדרת סצנה ב-HelloCardboard

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

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

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

  1. בוחרים באפשרות Android ואז באפשרות Switch Platform.
  2. בוחרים באפשרות Add Open Scenes (הוספת סצנות פתוחות) ובוחרים באפשרות HelloCardboard.

הגדרות הנגן

פתרון והצגה

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

  1. מגדירים את Default Orientation (כיוון ברירת המחדל) ל-Landscape Left (לרוחב, ימין) או ל-Landscape Right (לרוחב, ימין).
  2. משביתים את האפשרות קצב מסגרות מותאם.

הגדרות אחרות

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

  1. בוחרים באפשרות OpenGLES2,‏ OpenGLES3 או Vulkan, או כל שילוב שלהן ב-Graphics APIs.
  2. בוחרים באפשרות Android 8.0 'Oreo' (API level 26) ואילך בקטע רמת API מינימלית.
  3. בוחרים באפשרות API level 33 ואילך בקטע רמת ה-API לטירגוט.
  4. בוחרים באפשרות IL2CPP בקטע Scripting Backend.
  5. בוחרים את הארכיטקטורות הרצויות על ידי בחירה באפשרות ARMv7,‏ ARM64 או בשתיהן בקטע Target Architectures.
  6. בוחרים באפשרות Require בקטע גישה לאינטרנט.
  7. בוחרים באפשרות Input System Package (New) בקטע Active Input Handling.
  8. מציינים את הדומיין של החברה בקטע שם החבילה.
  9. אם Vulkan נבחר כ-Graphics API:
    • מבטלים את הסימון בתיבה Apply display rotation during rendering בקטע Vulkan Settings.
    • אם גרסת Unity היא 2021.2 ואילך, בוחרים באפשרות ETC2 בקטע Texture compression format.
  10. אם גרסת Unity היא 2023.1 ואילך, בוחרים באפשרות Activity ומוחקים את הערך של GameActivity בקטע Application Entry Point.

הגדרות פרסום

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

  1. בקטע Build, בוחרים באפשרויות Custom Main Gradle Template ו-Custom Gradle Properties Template.
  2. מוסיפים את השורות הבאות לקטע dependencies בקובץ 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
    

הגדרות ניהול של פלאגין XR

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

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

פיתוח הפרויקט

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

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

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

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

  1. בוחרים באפשרות iOS ואז באפשרות Switch Platform.
  2. בוחרים באפשרות Add Open Scenes (הוספת סצנות פתוחות) ובוחרים באפשרות HelloCardboard.

הגדרות הנגן

פתרון והצגה

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

  1. מגדירים את Default Orientation (כיוון ברירת המחדל) ל-Landscape Left (לרוחב, ימין) או ל-Landscape Right (לרוחב, ימין).

הגדרות אחרות

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

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

הגדרות ניהול של פלאגין 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

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

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

השלבים הבאים