פיתוח באמצעות Unity ל-Android XR

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

במדריך הזה מוסבר על:

  • תמיכה ב-Unity ל-Android XR
    • היסודות של Unity XR
    • פיתוח ופרסום אפליקציות ל-Android XR
    • חבילות Unity ל-Android XR
      • ‫Unity OpenXR: חבילת Android XR
      • Android XR Extensions for Unity
      • תכונות ושיקולי תאימות
  • קלט ואינטראקציה

תמיכה ב-Unity ל-Android XR

כשמפתחים אפליקציות Unity ל-Android XR, אפשר לנצל את הכלים והיכולות של מציאות משולבת בגרסאות האחרונות של Unity 6. התבניות האלה כוללות תבניות של מציאות משולבת שמשתמשות ב-XR Interaction Toolkit, ב-AR Foundation וב-OpenXR Plugin, כדי לעזור לכם להתחיל במהירות. כשמפתחים אפליקציות באמצעות Unity ל-Android XR, מומלץ להשתמש ב-Universal Render Pipeline ‏ (URP) כצינור עיבוד הנתונים לפריסה וב-Vulkan כ-Graphics API. התכונות האלה מאפשרות לכם לנצל חלק מתכונות הגרפיקה של Unity, שתומכות רק ב-Vulkan. במדריך להגדרת פרויקטים יש מידע נוסף על הגדרת ההגדרות האלה.

Unity XR Basics

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

פיתוח ופרסום של אפליקציות ל-Android

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

חבילות Unity ל-Android XR

יש שתי חבילות שמספקות תמיכה בפיתוח אפליקציות Unity ל-Android XR. שתי החבילות האלה הן יישומי פלאגין של ספקי XR, שאפשר להפעיל אותם באמצעות החבילה XR Plug-in Management של Unity. הפלאגין XR Manager מוסיף הגדרות פרויקט לניהול ולסיוע בטעינה, בהפעלה, בהגדרות ובבנייה של פלאגינים של XR. כדי לאפשר לאפליקציה להפעיל תכונות של OpenXR בזמן הריצה, צריך להפעיל את התכונות האלה בפרויקט באמצעות מנהל התוספים.

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

דוגמה למסך לניהול תוסף Unity XR

Unity OpenXR Android XR

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

Android XR Extensions for Unity

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

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

תכונות ושיקולי תאימות

בטבלה הבאה מפורטות התכונות שנתמכות על ידי Unity OpenXR: חבילת Android XR וחבילת Android XR Extensions for Unity. אפשר להשתמש בטבלה כדי לקבוע איזו חבילה מכילה את התכונות שאתם צריכים ומהם שיקולי התאימות.

תכונה

‫Unity OpenXR: מחרוזת התכונות של Android XR

מחרוזת התכונות של Android XR Extensions for Unity

תרחישי שימוש והתנהגות צפויה

סשן AR

‫Android XR: פעילות AR

  • הגדרות התכונות כוללות את האפשרות 'אופטימיזציה של מחיקת מאגרים' (Vulkan)

‫Android XR (תוספים): ניהול פעילויות

  • הגדרות התכונות כוללות דגימת משנה (Vulkan) ו-URP SpaceWarp (Vulkan)

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

מעקב אחר מכשירים

לא רלוונטי

לא רלוונטי

מעקב אחרי מכשירים משמש למעקב אחרי המיקום והסיבוב של המכשיר במרחב הפיזי. ‫XR Origin GameObject מטפל אוטומטית במעקב אחרי המכשיר ובהמרת נתונים שאפשר לעקוב אחריהם למערכת הקואורדינטות של Unity באמצעות הרכיב XROrigin והיררכיית GameObject עם Camera ו-TrackedPoseDriver.

מצלמה

‫Android XR: מצלמת AR

לא רלוונטי

התכונה הזו מספקת תמיכה בהערכת תאורה ובמעבר מלא למסך.

זיהוי מישור

‫Android XR: מישור AR

‫Android XR (תוספים): מישור

שתי התכונות האלה זהות, ואפשר להשתמש באחת מהן. ‫Android XR (Extensions): המישור כלול כדי שמפתחים יוכלו להשתמש בתכונות Android XR (Extensions): Object Tracking ו-persistent anchors בלי להסתמך על חבילת Unity OpenXR Android XR. בעתיד, Android XR (Extensions): Plane יוסר לטובת Android XR: AR Anchor.

מעקב אחר אובייקטים

לא רלוונטי

‫Android XR (תוספים): מעקב אחר אובייקטים

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

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

‫Android XR: AR Face

  • ‫XR_ANDROID_eye_tracking בלבד
  • ללא מעקב אחרי הבעות הפנים

‫Android XR: מעקב אחרי הבעות הפנים

  • XR_ANDROID_face_tracking

התמיכה בעיניים של אווטארים ניתנת באמצעות התכונה Android XR: AR Face. גישה להבעות הפנים של משתמשים דרך התכונה 'מעקב פנים' ב-Android XR. אפשר להשתמש בשתי התכונות האלה ביחד.

הטלת קרניים

‫Android XR: AR Raycast

  • עוגן מטוס
  • עומק העוגן

לא רלוונטי

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

עוגנים

‫Android XR: AR Anchor

‫Android XR (תוספים): עוגן

  • הגדרות התכונה כוללות התמדה.

שתי התכונות כוללות תמיכה בעוגנים מרחביים ובעוגנים במישור. אפשר להשתמש באחת מהתכונות. לנקודות עיגון קבועות, משתמשים ב-Android XR (Extensions): Anchor. בעתיד, Android XR (תוספים): Anchor יוסר וכל התכונות של Anchor יהיו ב-Android XR: AR Anchor.

Occlusion

‫Android XR: הסתרת מציאות רבודה

  • עומק הסביבה

לא רלוונטי

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

מדדים לבדיקת ביצועים

מדדי ביצועים של Android XR

לא רלוונטי

אתם יכולים להשתמש בתכונה הזו כדי לגשת למדדי ביצועים של מכשירי Android XR.

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

תמיכה בשכבת קומפוזיציה (נדרשים OpenXR Plugin ו-XR Composition Layer)

‫Android XR: שכבת קומפוזיציה של העברה

  • XR_ANDROID_composition_layer_passthrough_mesh

אפשר להשתמש בתמיכה בשכבות קומפוזיציה של Unity כדי ליצור שכבות קומפוזיציה בסיסיות (למשל: מרובע, גליל, הקרנה). ‫Android XR: אפשר להשתמש ב-Passthrough Composition Layer כדי ליצור שכבת מעבר עם רשת בהתאמה אישית, שקוראת מ-GameObject של Unity.

Foveated Rendering

עיבוד ממוקד (נדרש פלאגין OpenXR)

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

התמקדות (דור קודם)

רינדור פוביאלי מאפשר להאיץ את הרינדור על ידי הורדת הרזולוציה של אזורים בראייה ההיקפית של המשתמש. התכונה foveated rendering של Unity נתמכת רק באפליקציות שמשתמשות ב-URP וב-Vulkan. התכונה Foveation (מדור קודם) ב-Android XR Extensions for Unity תומכת גם ב-Built-in Render Pipeline וב-OpenGL ES. מומלץ להשתמש בתכונת הרינדור הממוקד של Unity כשניתן, וחשוב לזכור שמומלץ להשתמש גם ב-URP וגם ב-Vulkan כשמפתחים ל-Android XR.

Unbounded Reference Space

לא רלוונטי

‫Android XR: מרחב הפניה בלתי מוגבל

התכונה הזו מגדירה את מצב המעקב של XRInputSubsystem ל-Unbounded. הערך Unbounded מציין שהמערכת XRInputSubsystem עוקבת אחרי כל InputDevice ביחס לעוגן עולמי, שיכול להשתנות.

מצב שילוב סביבה

לא רלוונטי

מצב מיזוג סביבה

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

קלט ואינטראקציה

‫Android XR תומך בקלט טבעי רב-אופני.

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

פרופילים של אינטראקציות

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

  1. פותחים את החלון Project Settings (הגדרות הפרויקט) (תפריט: Edit > Project Settings (עריכה > הגדרות הפרויקט)).
  2. לוחצים על XR Plug-in Management (ניהול תוספים של XR) כדי להרחיב את קטע התוספים (אם צריך).
  3. ברשימת תוספי ה-XR, בוחרים באפשרות OpenXR.
  4. בקטע פרופילים של אינטראקציות, לוחצים על הלחצן + כדי להוסיף פרופיל.
  5. בוחרים את הפרופיל שרוצים להוסיף מהרשימה.

אינטראקציה עם הידיים

האינטראקציה עם הידיים (XR_EXT_hand_interaction) מסופקת על ידי OpenXR Plugin, ואפשר לחשוף את פריסת המכשיר <HandInteraction> ב-Unity Input System על ידי הפעלת Hand Interaction Profile. פרופיל האינטראקציה הזה משמש לקלט באמצעות הידיים, שנתמך על ידי ארבעת מצבי הפעולה שמוגדרים על ידי OpenXR: 'צביטה', 'דחיפה', 'כיוון' ו'אחיזה'. אם אתם צריכים עוד פונקציות של אינטראקציה עם הידיים או מעקב אחרי הידיים, תוכלו לעיין בקטע XR Hands בדף הזה.

אינטראקציה באמצעות מבט

האינטראקציה באמצעות מבט (XR_EXT_eye_gaze_interaction) מסופקת על ידי OpenXR Plugin, ואפשר להשתמש בפריסה הזו כדי לאחזר את נתוני התנוחה של העיניים (מיקום וסיבוב) שהתוסף מחזיר. מידע נוסף על אינטראקציה באמצעות מבט העיניים במדריך לקלט OpenXR

אינטראקציה עם בקר

‫Android XR תומך בפרופיל של בקר Oculus Touch עבור בקרי 6DoF. שני הפרופילים האלה מסופקים על ידי OpenXR Plugin.

אינטראקציה עם העכבר

פרופיל האינטראקציה עם העכבר ב-Android XR ‏ (XR_ANDROID_mouse_interaction) מסופק על ידי Android XR Extensions for Unity. הוא חושף פריסת מכשיר במערכת הקלט של Unity.<AndroidXRMouse>

אינטראקציה עם תנוחת כף היד

הפלאגין OpenXR מספק תמיכה באינטראקציה של תנוחת כף היד (XR_EXT_palm_pose), שחושפת את הפריסה של <PalmPose> בתוך מערכת הקלט של Unity. התכונה 'תנוחת כף יד' לא נועדה להוות חלופה לתוספים או לחבילות שמבצעים מעקב אחרי תנועות ידיים בתרחישי שימוש מורכבים יותר. במקום זאת, אפשר להשתמש בה כדי להציב תוכן חזותי ספציפי לאפליקציה, כמו תמונות אווטאר. תנוחת כף היד מורכבת ממיקום כף היד ומהכיוון שלה.

ידיים ב-XR

חבילת XR Hands מאפשרת לכם לגשת לנתוני מעקב תנועות הידיים – באמצעות XR_EXT_hand_tracking ו-XR_FB_hand_tracking_aim – ומספקת עטיפה להמרת נתונים של מפרקי הידיים ממעקב תנועות הידיים לתנוחות קלט. כדי להשתמש בתכונות שמסופקות על ידי חבילת XR Hands, צריך להפעיל את התכונות Hand Tracking Subsystem ו-Meta Hand Tracking Aim OpenXR.

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

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

לפרטים נוספים, אפשר לעיין בתיעוד של Unity בנושא הגדרת XR Hands בפרויקט.

בחירת אופן הצגת הידיים

‫Android XR תומך בשתי דרכים לעיבוד ידיים: רשת ידיים ורכיב prefab של כלי להמחשה.

רשת ידנית

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

‫XR Hands prefab

חבילת XR Hands מכילה דוגמה בשם Hands visualizer, שכוללת ידיים שמאלית וימנית עם אנימציה מלאה, לצורך עיבוד של ייצוג מתאים להקשר של הידיים של המשתמש.

תנועות מובנות במערכת

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

כשהמשתמש מנהל אינטראקציה עם תפריט הניווט של המערכת, האפליקציה תגיב רק לאירועים של מעקב אחרי תנועות הראש. חבילת XR Hands יכולה לזהות מתי משתמש מבצע פעולות ספציפיות, כמו אינטראקציה עם תפריט הניווט של המערכת. הסימון של AimFlags, SystemGesture ו-DominantHand מאפשר לדעת מתי מתבצעת פעולת המערכת הזו. מידע נוסף על AimFlags זמין במסמכי העזרה של Unity בנושא Enum MetaAimFlags.

XR Interaction Toolkit

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


‫OpenXR™‎ והלוגו של OpenXR הם סימנים מסחריים בבעלות The Khronos Group Inc. ‎ והם רשומים כסימן מסחרי בסין, באיחוד האירופי, ביפן ובבריטניה.