מדריכים

איך מתחילים להשתמש ב-Unity וב-Android XR

משך הקריאה: 6 דקות
Luke Hopkins
מהנדס קשרי מפתחים, Android

‫Samsung Galaxy XR כבר כאן, והוא מבוסס על Android XR! הפוסט הזה בבלוג הוא חלק מ Android XR Spotlight Week, שבו אנחנו מספקים משאבים – פוסטים בבלוג, סרטונים, קוד לדוגמה ועוד – שנועדו לעזור לכם ללמוד, ליצור ולהכין את האפליקציות שלכם ל-Android XR. 

עכשיו זה הזמן המושלם להתחיל לפתח תוכן ל-XR. בדצמבר האחרון הכרזנו על Android XR, פלטפורמת Android החדשה של Google שמבוססת על תקנים פתוחים כמו OpenXR ו-Vulkan, מה שהופך את פיתוח ה-XR לנגיש יותר מאי פעם.


בנוסף, בשילוב עם כלי ה-XR הקיימים של Unity, מקבלים סטאק פיתוח חזק ומתקדם. כך אפשר ליצור ולפרוס אפליקציות XR שפועלות בכמה מכשירים.

openxr_face_tracking2.webp

לא משנה אם כבר פיתחתם XR או לא, אנחנו רוצים לעזור לכם להתחיל.

בבלוג הזה נסביר איך להתחיל לפתח ל-Android XR ול-Unity. נתמקד בשלבים המעשיים להגדרת הסביבה, להבנת המערכת האקולוגית של החבילה ולהתחלת הבנייה.

בסיום הקריאה של הבלוג הזה, תהיה לכם הבנה טובה של:

  • הסביבה של החבילה
  • שלבי הגדרה חיוניים
  • שיטות קלט
  • פרטיות והרשאות
  • שכבות של קומפוזיציה

פיתוח ב-Unity ל-Android XR

אפשר לבחור ב-Unity בגלל התאימות שלה בין פלטפורמות שונות, שמאפשרת לפתח אפליקציה פעם אחת ולפרוס אותה ב-Android XR ובמכשירי XR אחרים.

כשמשתמשים ב-Unity, נהנים מהמערכת האקולוגית הבוגרת של XR ומהכלים שלה. כבר יש לו חבילות מבוססות כמו XR Interaction Toolkit, ‏ OpenXR plugin, ‏ XR composition layers, ‏ XR Hands, חנות נכסים נרחבת מלאה ברכיבים ובתבניות שמוכנים ל-XR, וכלים לסימולציה ולבדיקה של XR. בנוסף, מאז ש-Unity 6 הושקה בנובמבר האחרון, תוכלו ליהנות משיפורים בביצועים של Universal Render Pipeline ‏ (URP), מתמיכה טובה יותר בגרפיקת Vulkan ומפרופילים משופרים של בנייה.

הנה כמה דוגמאות לפרויקטים כדי לקבל מושג מה אפשר לעשות:

הגדרה חיונית: הבסיס לפיתוח

דרישות והתקנה של Unity 6

כדי ליצור את האפליקציה, תצטרכו את Unity 6, כי גרסאות קודמות לא תומכות ב-Android XR. קודם מתקינים את Unity Hub, ואז את Unity 6 עם המודול Android Build Support, לפי השלבים האלה.

unity6.png

פרופילי build של Android XR: פישוט ההגדרה

פרופילים של בנייה ב-Unity הם נכסי פרויקט שבהם מאוחסנות ההגדרות והקביעות הספציפיות לפלטפורמה. לכן, במקום להגדיר ידנית 15-20 הגדרות שונות בכמה תפריטים, אפשר להשתמש בפרופיל build כדי לעשות זאת באופן אוטומטי.
אפשר ליצור פרופילים משלכם, אבל בשלב הזה מומלץ להשתמש בפרופיל build הייעודי של Android XR שיצרנו.

כדי לבחור את פרופיל ה-build, בוחרים באפשרות File > Build Profile (קובץ > פרופיל build) בפרויקט Unity. הוראות מלאות זמינות בדף תהליך העבודה של פיתוח ל-Android XR.

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

buildprofiles.png

אחרי השלבים האלה, אפשר ליצור ולהפעיל את קובץ ה-APK למכשירי Android XR.

Graphics API: why Vulkan matters

אחרי שמגדירים את פרויקט Unity עם פרופיל בנייה של Android XR, מומלץ לוודא ש-Vulkan מוגדר כ-Graphics API. ‫Android XR מבוססת על Vulkan. במרץ 2025, Google הודיעה ש-Vulkan הוא עכשיו ממשק ה-API הרשמי לגרפיקה ב-Android. זהו ממשק API מודרני לגרפיקה ברמה נמוכה, שעוזר למפתחים למקסם את הביצועים של מעבדי GPU מודרניים, ומאפשר להשתמש בתכונות מתקדמות כמו מעקב אחר קרניים וריבוי שרשורים, כדי ליצור רכיבים חזותיים ריאליסטיים וסוחפים במשחקים.

הסטנדרטים האלה מספקים את התאימות הטובה ביותר לאפליקציות הקיימות שלכם, ומקלים על הבעיות והעלויות של העברה. בנוסף, היא מאפשרת להפעיל תכונות מתקדמות של Android XR כמו URP Application Space Warp ו-foveated rendering

ב-Unity 6, המערכת מטפלת ב-Vulkan באופן אוטומטי, כך שאם משתמשים בפרופיל ה-build של Android XR,‏ Unity מגדיר את Vulkan כ-Graphics API. כך תוכלו לקבל גישה לכל התכונות המתקדמות של Android XR בלי לבצע הגדרה ידנית.

כדי לוודא מהן הגדרות ה-API של הגרפיקה, עוברים אל 'עריכה' > 'הגדרות הפרויקט' > 'נגן' > 'כרטיסיית Android' > 'הגדרות אחרות' > 'ממשקי API של גרפיקה'.

appentrypoint.png

הסבר על המערכת האקולוגית של החבילה

יש שתי חבילות שונות שאפשר להשתמש בהן ל-Android XR ב-Unity. אפשר לעשות זאת באמצעות Android XR Extensions for Unity, או באמצעות חבילת Unity OpenXR: Android XR.

יכול להיות שזה נשמע אותו דבר, אבל כדאי להמשיך לקרוא.

חבילת Unity OpenXR: Android XR היא החבילה הרשמית של Unity לתמיכה ב-Android XR. הוא מספק את רוב התכונות של Android XR, שזמינות דרך תקני OpenXR. היא גם מאפשרת שילוב של AR Foundation לתכונות של מציאות משולבת. היתרון העיקרי בשימוש בחבילת Unity OpenXR: Android XR הוא שהיא מציעה API מאוחד לתמיכה במכשירי XR.


לעומת זאת, Android XR Extensions for Unity היא חבילת ה-XR של Google, שנועדה במיוחד לפיתוח למכשירי Android XR. הוא משלים את חבילת Unity OpenXR עם תכונות נוספות כמו מצבי מיזוג של סביבות, מיפוי רשת של סצנות, מעקב אחרי תמונות ומעקב אחרי תנועות הגוף. החיסרון הוא שאפשר לפתח רק למכשירי Android XR.


הבחירה ביניהם תלויה בצרכים הספציפיים שלכם, אבל בדרך כלל מומלץ לבחור ב-Unity OpenXR: Android XR, כי הוא מאפשר גמישות רבה יותר לגבי המכשירים שהאפליקציה תהיה תואמת להם. לאחר מכן, על סמך דרישות האפליקציה, תוכלו להוסיף את Android XR Extensions for Unity.

איך מתקינים חבילות

כדי להוסיף חבילה חדשה, פותחים את הפרויקט ב-Unity ובוחרים באפשרות Window (חלון) > Package Management (ניהול חבילות) > Package Manager (מנהל החבילות).

מכאן אפשר להתקין את החבילות האלה מהכרטיסייה Unity Registry:

packagemmanager.png

אפשר להתקין את חבילת Android XR for Unity דרך GitHub. לשם כך, לוחצים על סמל הפלוס (➕), בוחרים באפשרות Install package from git URL (התקנת חבילה מכתובת URL של git) ומזינים את הכתובת https://github.com/android/android-xr-unity-package.git.

packagemanager2.png

תכונות OpenXR נדרשות

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

אפשר להפעיל את הגדרת OpenXR ל-Android: Edit (עריכה) -> Project Settings (הגדרות פרויקט) -> XR Plugin Management (ניהול פלאגינים של XR) -> לוחצים על Android ומפעילים את OpenXR

xrpluginmgmt.png

בשלב הבא צריך להפעיל תמיכה ב-Android XR. נסביר על תכונות אחרות של OpenXR לפי הצורך. בשלב הזה אנחנו צריכים רק להפעיל את התמיכה ב-Android XR.

קלט

‫Android XR תומך בקלט של ידיים, קול, מעקב עיניים, מקלדת ובקרים. מומלץ להתקין את XR Interaction Toolkit ואת XR Hands כי הם מכילים את ה-prefabs הכי טובים להתחלה. באמצעות ה-prefabs האלה, יהיה לכם כל מה שצריך כדי לתמוך בידיים ובבקרים באפליקציה.

xrinteractiontoolkit.png

אחרי שמתקינים את חבילת הכלים XR Hands ואת חבילת הכלים XR Interactive, מומלץ לייבא את Starter Assets ואת Hands Interaction Demo. לאחר מכן צריך להפעיל את הפרופילים Hand Interaction ו-Khronos Simple Controller, ולהפעיל את התכונות Hand Tracking Subsystem ו-Meta Hand Tracking Aim.

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

profiles.png

מומלץ גם להשתמש ב-prefab של Unity, ‏ XR Origin, שמייצג את המיקום וההתמצאות של המשתמש במרחב XR. הוא מכיל את מערכת המצלמות ואת רכיבי המעקב שנדרשים כדי להציג את חוויית ה-XR מנקודת המבט הנכונה.

הדרך הכי פשוטה להוסיף את ה-prefab הזה היא לייבא אותו מהדמו של שילוב הידיים שייבאנו קודם. אפשר למצוא אותו כאן: 'Hands Integration Toolkit' > 'Hand Interaction' > 'Prefabs' > 'XR Origin'

prefabs.png

מומלץ להשתמש ב-Prefab הזה במקום באפשרות XR Origin באובייקטים של המשחק, כי הוא משתמש ב-XR Input Modality Manager, שעובר אוטומטית בין הידיים של המשתמש לבין הבקרים. כך תוכלו להחליף בין הידיים והבקרים בצורה הכי טובה.

פרטיות והרשאות: בניית אמון המשתמשים

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

היכולות האלה מספקות מידע אישי מפורט יותר מאפליקציות מסורתיות למחשב או לנייד, ולכן ההרשאות בזמן הריצה מבטיחות שלמשתמשים תהיה שליטה מלאה בנתונים שהם בוחרים לשתף. לכן, כדי לעמוד בדרישות של מדיניות האבטחה והפרטיות של Android, ל-Android XR יש הרשאות לכל אחת מהתכונות האלה.

לדוגמה, אם אתם משתמשים בחבילת האינטראקציה עם הידיים ב-XR כדי ליצור תנועות ידיים מותאמות אישית, תצטרכו לבקש את ההרשאה למעקב ידיים (כפי שמוסבר בהמשך), כי החבילה הזו צריכה לעקוב אחרי הרבה מידע על הידיים של המשתמש. המידע הזה כולל דברים כמו מעקב אחרי תנוחות של מפרקי הידיים, מהירויות זוויתיות ומהירויות לינאריות.

הערה: רשימה מלאה של התוספים שדורשים הרשאות זמינה באתר המפתחים של XR.

  const string k_Permission = "android.permission.HAND_TRACKING";

#if UNITY_ANDROID
void Start()
{
    if (!Permission.HasUserAuthorizedPermission(k_Permission))
    {
        var callbacks = new PermissionCallbacks();
        callbacks.PermissionDenied += OnPermissionDenied;
        callbacks.PermissionGranted += OnPermissionGranted;
        
        Permission.RequestUserPermission(k_Permission, callbacks);
    }
}

void OnPermissionDenied(string permission)
{
    // handle denied permission
}


void OnPermissionGranted(string permission)
{
    // handle granted permission
}

#endif // UNITY_ANDROID

שיפור האיכות הוויזואלית באמצעות שכבות קומפוזיציה

שכבת קומפוזיציה היא הדרך המומלצת לעיבוד של רכיבי ממשק משתמש. הם מאפשרים להציג רכיבים באיכות גבוהה בהרבה בהשוואה לצינור העיבוד הגרפי הרגיל של Unity, כי כל הרכיבים מעובדים ישירות למרכיב ההרכבה של הפלטפורמה.

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


בנוסף לטקסט, הוא גם מעבד סרטונים, תמונות ורכיבי ממשק משתמש באיכות גבוהה בהרבה. הוא עושה את זה באמצעות תמיכה מובנית בשכבות של מנהל ההרכבה של זמן הריצה.

כדי להפעיל את התכונה Composition Layers (שכבות של יצירה), פותחים את Package Manager (ניהול חבילות), בוחרים באפשרות Unity Register (רישום Unity) ואז מתקינים את XR Composition Layers (שכבות של יצירת XR).

בנייה והפעלה

אחרי שמתקינים את חבילות OpenXR ומפעילים את התכונות, אפשר ליצור סצנה ולפרוס אותה ישירות למשקפי ה-XR לבדיקה.

השלב הבא: הרחבת המיומנויות

אחרי שהגדרתם את סביבת הפיתוח של Android XR והבנתם את מושגי המפתח, הנה השלבים הבאים להמשך תהליך הפיתוח של XR:

משאבים חשובים להמשך הלמידה:

פרויקטים לדוגמה שכדאי לבדוק:

נכתב על ידי:

להמשך הקריאה