במדריך הזה מופיעה סקירה כללית של פיתוח באמצעות 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
אם אין לכם הרבה ניסיון ב-Unity או בפיתוח XR, תוכלו לעיין במדריך ה-XR של Unity כדי להבין מושגים בסיסיים של XR ותהליכי עבודה. במדריך ל-XR יש מידע על:
- פלאגינים של ספקי XR, כולל Unity OpenXR: Android XR ו-Android XR Extensions for Unity
- חבילות תמיכה ב-XR כדי להוסיף תכונות נוספות ברמת האפליקציה
- מדריך לארכיטקטורת XR שמתאר את חבילת הטכנולוגיה Unity XR ואת מערכות המשנה של XR
- הגדרת פרויקט XR
- פיתוח והפעלה של אפליקציות XR
- הנחיות לגבי גרפיקה ב-XR, כולל Universal Render Pipeline, רינדור סטריאו, רינדור ממוקד, אזורי רינדור מכמה נקודות מבט וזמן רינדור פריימים ב-VR
- הנחיות אודיו ב-XR, כולל תמיכה במרחיבי אודיו
פיתוח ופרסום של אפליקציות ל-Android
ל-Unity יש מגוון מאמרי עזרה לפיתוח, לבנייה ולפרסום של אפליקציות ל-Android, כולל נושאים כמו הרשאות ל-Android ב-Unity, הגדרות build ל-Android, בניית האפליקציה ל-Android ושליחה ל-Google Play.
חבילות Unity ל-Android XR
יש שתי חבילות שמספקות תמיכה בפיתוח אפליקציות Unity ל-Android XR. שתי החבילות האלה הן פלאגינים של ספקי XR, שאפשר להפעיל דרך החבילה לניהול פלאגינים של XR ב-Unity. מנהל הפלאגינים מוסיף הגדרות פרויקט לניהול ולעזרה בטעינה, בהפעלה, בהגדרות ובבנייה של תמיכה בפלאגינים של XR. כדי שהאפליקציה תוכל להפעיל תכונות של OpenXR בזמן הריצה, צריך להפעיל את התכונות האלה בפרויקט באמצעות מנהל הפלאגינים.
בתמונה הזו מוצג מיקום לדוגמה שבו אפשר להפעיל את קבוצות התכונות האלה דרך העורך של Unity.
Unity OpenXR Android XR
חבילת Unity OpenXR Android XR היא פלאגין XR להוספת תמיכה ב-Android XR ל-Unity. הפלאגין הזה מספק את רוב התמיכה ב-Android XR ל-Unity, והוא מאפשר תמיכה במכשירי Android XR בפרויקטים של AR Foundation. AR Foundation מיועד למפתחים שרוצים ליצור חוויות במציאות רבודה (AR) או במציאות משולבת (MR). הוא מספק את הממשק לתכונות של AR, אבל לא מיישם תכונות בעצמו. ההטמעה מסופקת על ידי חבילת Unity OpenXR Android XR. כדי להתחיל להשתמש בחבילה הזו, אפשר לעיין במדריך החבילה, שכולל מדריך לתחילת הדרך.
Android XR Extensions for Unity
Android XR Extensions for Unity הוא פלאגין לחבילת Unity OpenXR Android XR, שכולל תכונות נוספות שיעזרו לכם ליצור חוויות סוחפות. אפשר להשתמש בו לבד או ביחד עם חבילת 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 |
תרחישי שימוש והתנהגות צפויה |
|---|---|---|---|
Android XR: הפעלה של AR
|
Android XR (תוספים): ניהול סשנים
|
כדי להשתמש בתכונות של אחת מהחבילות, צריך להפעיל את התכונה AR Session (סשן AR) עבור החבילה הזו. אפשר להפעיל את שתי קבוצות התכונות בו-זמנית. התכונות יטפלו בסתירות בהתאם. |
|
לא רלוונטי |
לא רלוונטי |
מעקב אחרי מכשירים משמש למעקב אחרי המיקום והסיבוב של המכשיר במרחב הפיזי. XR Origin GameObject מטפל אוטומטית במעקב אחרי המכשיר ובהמרת נתונים שאפשר לעקוב אחריהם למערכת הקואורדינטות של Unity באמצעות הרכיב XROrigin והיררכיית GameObject עם Camera ו-TrackedPoseDriver. |
|
Android XR: מצלמת AR |
לא רלוונטי |
התכונה הזו מספקת תמיכה בהערכת תאורה ובמעבר למסך מלא. |
|
Android XR: מישור AR |
Android XR (תוספים): מישור |
שתי התכונות האלה זהות, ואפשר להשתמש באחת מהן. Android XR (תוספים): המישור כלול כדי שמפתחים יוכלו להשתמש בתכונות של Android XR (תוספים): מעקב אחר אובייקטים ועוגנים קבועים, בלי להסתמך על חבילת Unity OpenXR Android XR. בעתיד, "Android XR (תוספים): מישור" יוסר לטובת Android XR: עוגן AR. |
|
לא רלוונטי |
Android XR (תוספים): מעקב אחר אובייקטים |
התכונה הזו תומכת בזיהוי ובמעקב של אובייקטים בסביבה הפיזית, בשילוב עם ספריית אובייקטים להשוואה. |
|
Android XR: הבעות פנים AR
|
Android XR: מעקב אחרי הבעות הפנים
|
התמיכה בעיניים של האווטאר ניתנת דרך התכונה Android XR: הבעות פנים AR. גישה להבעות הפנים של משתמשים באמצעות התכונה "מעקב אחר הבעות פנים" ב-Android XR. אפשר להשתמש בשתי התכונות האלה ביחד. |
|
Android XR: הטלת קרניים AR
|
לא רלוונטי |
התכונה הזו מאפשרת להקרין קרן ולחשב את נקודת החיתוך בין הקרן לבין נקודות מעקב במישור או נקודות מעקב של עומק שמזוהות בסביבה הפיזית. |
|
Android XR: עוגנים AR |
Android XR (תוספים): עוגן
|
שתי התכונות כוללות תמיכה בעוגנים מרחביים ובעוגנים במישור. אפשר להשתמש באחת מהתכונות. לנקודות עיגון קבועות, משתמשים ב-Android XR (תוספים): עוגן. בעתיד, "Android XR (תוספים): עוגן" יוסר וכל תכונות העוגן יהיו ב-Android XR: עוגן AR. |
|
Android XR: הסתרה AR
|
לא רלוונטי |
הסתרה מאפשרת לתוכן של המציאות המשולבת באפליקציה להופיע כשהוא מוסתר או מוסתר חלקית מאחורי אובייקטים בסביבה הפיזית. |
|
מדדים לבדיקת ביצועים |
מדדי ביצועים של Android XR |
לא רלוונטי |
אתם יכולים להשתמש בתכונה הזו כדי לגשת למדדי הביצועים של מכשירי Android XR. |
תמיכה בשכבת קומפוזיציה (נדרשים פלאגין OpenXR ו-XR Composition Layer) |
Android XR: שכבת קומפוזיציה של מצב Passthrough
|
אפשר להשתמש בתמיכה בשכבות קומפוזיציה של Unity כדי ליצור שכבות קומפוזיציה בסיסיות (למשל: מרובע, גליל, הקרנה). Android XR: אפשר להשתמש בשכבת הקומפוזיציה של מצב Passthrough כדי ליצור שכבה עם רשת בהתאמה אישית, שקוראת מ-GameObject של Unity. |
|
רינדור ממוקד (נדרש פלאגין OpenXR)
|
התמקדות (דור קודם) |
רינדור ממוקד מזרז את הרינדור על ידי הורדת הרזולוציה של אזורים בראייה ההיקפית של המשתמש. התכונה "רינדור ממוקד" של Unity נתמכת רק באפליקציות שמשתמשות ב-URP וב-Vulkan. התכונה "התמקדות" (מדור קודם) ב-Android XR Extensions for Unity תומכת גם ב-Built-in Render Pipeline וב-OpenGL ES. כשאפשר, מומלץ להשתמש בתכונת הרינדור הממוקד של Unity. בנוסף, כשמפתחים ל-Android XR, מומלץ להשתמש גם ב-URP וגם ב-Vulkan. |
|
לא רלוונטי |
Android XR: מרחב הפניה לא מוגבל |
התכונה הזו מגדירה את מצב המעקב של XRInputSubsystem ל-לא מוגבל. הערך "לא מוגבל" מציין שהמערכת XRInputSubsystem עוקבת אחרי כל InputDevice ביחס לעוגן בעולם, שיכול להשתנות. |
|
לא רלוונטי |
מצב מיזוג של הסביבה |
התכונה הזו מאפשרת להגדיר את מצב המיזוג של סביבת ה-XR, שקובע איך תמונות וירטואליות משתלבות בעולם האמיתי כשמפעילים את התכונה "מצב Passthrought". |
קלט ואינטראקציה
Android XR תומך בקלט טבעי רב-אופני.
בנוסף למעקב אחרי תנועות הידיים והעיניים, יש תמיכה גם בציוד היקפי כמו בקרי 6DoF, עכבר ומקלדת פיזית. כלומר, אפליקציות ל-Android XR צריכות לתמוך באינטראקציה באמצעות הידיים, ואי אפשר להניח שכל המכשירים יגיעו עם בקרי משחק.
פרופילים של אינטראקציות
Unity משתמשת בפרופיל אינטראקציה כדי לנהל את האופן שבו אפליקציית ה-XR שלכם מתקשרת עם מכשירי XR ופלטפורמות XR שונות. הפרופילים האלה מגדירים את הקלט והפלט הצפויים לתצורות שונות של חומרה, ומקדמים תאימות ופונקציונליות עקבית במגוון פלטפורמות. הפעלת פרופילים של אינטראקציות עוזרת להבטיח שאפליקציית ה-XR תפעל בצורה תקינה במכשירים שונים, שמיפוי הקלט יהיה עקבי ושתהיה לאפליקציה גישה לתכונות ספציפיות של XR. כדי להגדיר פרופיל אינטראקציה:
- פותחים את החלון Project Settings (הגדרות הפרויקט) (תפריט: Edit > Project Settings (עריכה > הגדרות הפרויקט)).
- לוחצים על XR Plug-in Management (ניהול פלאגינים של XR) כדי להרחיב את קטע הפלאגינים (אם צריך).
- ברשימת הפלאגינים ל-XR, בוחרים באפשרות OpenXR.
- כדי להוסיף פרופיל, בקטע פרופילים של אינטראקציות, לוחצים על +.
- בוחרים מהרשימה את הפרופיל שרוצים להוסיף.
אינטראקציה עם הידיים
האינטראקציה עם הידיים (XR_EXT_hand_interaction) מסופקת על ידי OpenXR Plugin, ואפשר לראות את פריסת המכשיר <HandInteraction> במערכת הקלט של Unity על ידי הפעלת פרופיל אינטראקציה עם הידיים. פרופיל האינטראקציה הזה משמש לקלט באמצעות הידיים, שנתמך על ידי ארבעת מצבי הפעולה שמוגדרים על ידי OpenXR: "צביטה", "דחיפה", "כיוון" ו"אחיזה". אם אתם צריכים עוד פונקציות של אינטראקציה עם הידיים או מעקב אחרי הידיים, תוכלו לעיין בקטע שימוש בידיים ב-XR בדף הזה.
אינטראקציה באמצעות מבט
האינטראקציה באמצעות מבט (XR_EXT_eye_gaze_interaction) מסופקת על ידי OpenXR Plugin, ואפשר להשתמש בפריסה הזו כדי לאחזר את נתוני התנוחה של העיניים (מיקום וסיבוב) שהתוסף מחזיר. מידע נוסף על אינטראקציה באמצעות המבט במדריך לקלט OpenXR
אינטראקציה עם בקר משחקים
Android XR תומך בפרופיל בקר Oculus Touch לבקרים עם 6 דרגות חופש. שני הפרופילים האלה מסופקים על ידי OpenXR Plugin.
אינטראקציה עם העכבר
פרופיל האינטראקציה עם העכבר ב-Android XR (XR_ANDROID_mouse_interaction)
מסופק על ידי התוספים של Android XR ל-Unity. הוא חושף פריסת מכשיר <AndroidXRMouse> במערכת הקלט של Unity.
אינטראקציה עם תנוחת כף היד
הפלאגין OpenXR מספק תמיכה באינטראקציה עם תנוחת כף היד (XR_EXT_palm_pose), שחושפת את הפריסה של <PalmPose> בתוך מערכת הקלט של Unity.
התכונה "תנוחת כף היד" לא נועדה להחליף תוספים או חבילות שעוקבים אחרי תנועות ידיים בתרחישי שימוש מורכבים יותר. במקום זאת, אפשר להשתמש בה כדי להציב תוכן חזותי ספציפי לאפליקציה, כמו תמונות אווטאר. תנוחת כף היד כוללת את המיקום והכיוון של כף היד.
אינטראקציה עם הידיים ב-XR
חבילת אינטארקציה עם הידיים ב-XR מאפשרת לכם לגשת לנתוני מעקב תנועות הידיים – באמצעות XR_EXT_hand_tracking ו-XR_FB_hand_tracking_aim – ומספקת מעטפת להמרת נתוני מפרקי הידיים ממעקב תנועות הידיים לתנוחות קלט. כדי להשתמש בתכונות שכלולות בחבילה, צריך להפעיל את התכונות Hand Tracking Subsystem ו-Meta Hand Tracking Aim OpenXR.
![]()
חבילת האינטראקציה עם הידיים ב-XR יכולה להיות שימושית אם אתם צריכים נתונים מפורטים יותר על תנוחת היד או על מפרקי היד, או כשאתם צריכים לעבוד עם תנועות מותאמות אישית.
לפרטים נוספים, אפשר לעיין במאמרי העזרה של Unity בנושא הגדרת אינטראקציה עם הידיים בפרויקט XR.
אזורי מהימנות של מעקב אחרי הבעות הפנים
תוסף XR_ANDROID_face_tracking מספק ערכי מהימנות לשלושה אזורים בפנים: החלק השמאלי העליון, החלק הימני העליון והחלק התחתון של הפנים. הערכים האלה, שנעים בין 0 (ללא מהימנות) ל-1 (המהימנות הכי גבוהה), מציינים את הדיוק של מעקב הפנים בכל אזור.
אפשר להשתמש בערכי המהימנות האלה כדי להשבית בהדרגה צורות תערובת או להחיל מסננים חזותיים (כמו טשטוש) על אזור הפנים המתאים. כדי להשבית צורות תערובת בסיסיות באזור הפנים המתאים.
"החלק התחתון של הפנים" מייצג את כל מה שמתחת לעיניים, כולל הפה, הסנטר, הלחי והאף. שני האזורים העליונים כוללים את העיניים ואת אזור הגבות בצד ימין ובצד שמאל של הפנים.
בקטע הקוד הבא ב-C# אפשר לראות איך לגשת לנתוני רמת המהימנות ולהשתמש בהם בסקריפט Unity:
using UnityEngine;
using Google.XR.Extensions;
public class FaceTrackingConfidence : MonoBehaviour
{
void Update()
{
if (!XRFaceTrackingFeature.IsFaceTrackingExtensionEnabled.HasValue)
{
DebugTextTopCenter.text = "XrInstance hasn't been initialized.";
return;
}
else if (!XRFaceTrackingFeature.IsFaceTrackingExtensionEnabled.Value)
{
DebugTextTopCenter.text = "XR_ANDROID_face_tracking is not enabled.";
return;
}
for (int x = 0; x < _faceManager.Face.ConfidenceRegions.Length; x++)
{
switch (x)
{
case (int)XRFaceConfidenceRegion.Lower:
regionText = "Bottom";
break;
case (int)XRFaceConfidenceRegion.LeftUpper:
regionText = DebugTextConfidenceLeft;
break;
case (int)XRFaceConfidenceRegion.RightUpper:
regionText = DebugTextConfidenceRight;
break;
}
}
}
מידע נוסף זמין במאמרי העזרה בנושא Android XR Extensions for Unity.
בחירת אופן הצגת הידיים
ב-Android XR יש תמיכה בשתי דרכים לעיבוד של הידיים: רשת ותצוגה מוגדרת מראש.
תצוגת רשת של היד
חבילת Android XR Unity כוללת תכונה של רשת תלת-ממדית של היד, שמאפשרת גישה אל XR_ANDROID_hand_mesh extension. התכונה
מציגה את הידיים של המשתמש כרשת תלת-ממדית. בתצוגת הרשת יש קודקודי משולשים שמייצגים את המבנה הגיאומטרי של היד. הרשת נוצרת בהתאמה אישית ומייצגת את המבנה הגיאומטרי של הידיים של המשתמש.
תצוגת ידיים מוגדרת מראש ב-XR
בחבילת האינטראקציה עם הידיים ב-XR יש דוגמה בשם תצוגה מוגדרת מראש של הידיים. הדוגמה כוללת זוג ידיים, שמופיעות בהתאם להקשר ומייצגות את הידיים של המשתמש.
תנועות מובנות במערכת
מערכת Android XR כוללת תנועות מובנות בתפריט שמאפשרות למשתמשים לחזור אחורה, לפתוח את מרכז האפליקציות או לקבל סקירה כללית של האפליקציות שפועלות. המשתמש יכול להפעיל את תפריט המערכת הזה באמצעות צביטה של האצבעות ביד הדומיננטית.
כשהמשתמש מנהל אינטראקציה עם תפריט הניווט של המערכת, האפליקציה תגיב רק לאירועים של מעקב אחרי תנועות הראש. חבילת האינטראקציה עם הידיים ב-XR יכולה לזהות מתי המשתמש מבצע פעולות ספציפיות, למשל בתוך תפריט הניווט של המערכת. הסימון של AimFlags, SystemGesture ו-DominantHand מאפשר לדעת מתי הפעולה הזו מתבצעת במערכת. מידע נוסף על AimFlags זמין במאמרי העזרה של Unity בנושא Enum MetaAimFlags.
חבילת הכלים לאינטראקציה עם XR
חבילת הכלים לאינטראקציה עם XR היא מערכת אינטראקטיבית ברמה גבוהה שמבוססת על רכיבים, ליצירת חוויות VR ו-AR. זו מסגרת שמאפשרת אינטראקציות תלת-ממדיות ואינטראקציות עם ממשק המשתמש מאירועי קלט של Unity. היא תומכת במגוון אינטראקציות, כולל משוב פיזי, משוב ויזואלי ותנועה.
OpenXR™ והלוגו של OpenXR הם סימנים מסחריים בבעלות The Khronos Group Inc. והם רשומים כסימן מסחרי בסין, באיחוד האירופי, ביפן ובבריטניה.