מגדירים את ההגדרות של האפליקציה כך שתהיה לה אפשרות להשתמש ב-Geospatial API.
דרישות מוקדמות
לפני שממשיכים, חשוב להבין את המושגים הבסיסיים של AR ואת האופן שבו מגדירים סשן ARCore.
למידע נוסף על Geospatial API, ראו מבוא ל-Geospatial API.
אם אתם מתחילים לפתח עם ARCore, כדאי לעיין במאמר תחילת העבודה כדי לקבל מידע על דרישות התוכנה והחומרה, על דרישות מוקדמות ועל מידע נוסף ספציפי לפלטפורמות שבהן אתם משתמשים.
כדי להשתמש ב-ARCore Geospatial API, הפרויקט צריך לתמוך ב-AR Foundation וב-ARCore Extensions for AR Foundation.
הפעלת ה-API של ARCore
לפני שמשתמשים במערכת למיקום חזותי (VPS) באפליקציה, צריך להפעיל את ARCore API בפרויקט חדש או קיים ב-Google Cloud. השירות הזה אחראי לאירוח, לאחסון ולפתרון של עוגנים גיאו-מרחביים.
מומלץ להשתמש בהרשאה ללא מפתח, אבל יש תמיכה גם בהרשאה באמצעות מפתח API.
הוספת הספריות הנדרשות לאפליקציה
אחרי שמאשרים לאפליקציה לבצע קריאה ל-ARCore API, צריך להוסיף ספריות כדי להפעיל תכונות גיאו-מרחביות באפליקציה.
- עוברים אל עריכה > הגדרות הפרויקט > ניהול הפלאגין של XR > תוספים של ARCore. מוודאים שהאפשרות הפעלת תמיכה ב-iOS מסומנת.
- בקטע Optional Features (תכונות אופציונליות), בוחרים באפשרות Geospatial (גיאו-מרחבית).
הפעלת יכולות גיאו-מרחביות בהגדרת הסשן
אחרי שמפעילים את הפונקציונליות הגיאוספטיאלית באפליקציה, צריך להפעיל את היכולות הגיאוספטיאליות בהגדרת סשן ה-AR של האפליקציה כדי שתהיה לה אפשרות לתקשר עם ARCore API:
- מוודאים שהתיקייה Assets בפרויקט מכילה אובייקט ARCoreExtensionsConfig שניתן לכתוב לו סקריפט. כדי ליצור קובץ כזה, לוחצים לחיצה ימנית בחלונית נכסים ובוחרים באפשרות יצירה > XR > ARCore Extensions Config.
בוחרים את האובייקט ARCoreExtensionsConfig שאפשר לכתוב לו סקריפט בתיקייה Assets ומגדירים את Geospatial Mode (מצב גיאו-מרחבי) ל-Enabled (מופעל).
מגדירים את אובייקט המשחק ARCore Extensions כך שישתמש בתצורה ARCoreExtensionsConfig. בחלונית Hierarchy, מאתרים את אובייקט המשחק ARCore Extensions שיצרתם כשהגדרתם את ARCore Extensions בפעם הראשונה, ומקשרים את השדה ARCore Extensions Config לאובייקט הניתן לתכנות ARCoreExtensionsConfig בתיקייה Assets.
הצגת בקשה למשתמש לאשר שימוש בנתוני המכשיר
אפליקציות שמשתמשות ב-ARCore Geospatial API חייבות להציג למשתמש בקשה לאשר ולהתיר את השימוש בנתונים מהמכשיר שלו. למידע נוסף, ראו דרישות בנושא פרטיות המשתמשים.
בדיקת התאימות של המכשיר
לא כל המכשירים שתומכים ב-ARCore תומכים גם ב-Geospatial API. כדי לבדוק את התאימות של המכשיר של המשתמש, צריך להתקשר למספר AREarthManager.IsGeospatialModeSupported()
.
אם הפונקציה מחזירה את הערך FeatureSupported.Unsupported
, אל תנסה להגדיר את הסשן.
בקשת הרשאות מיקום מהמשתמש בזמן הריצה
כדי להפעיל את שירותי המיקום של Unity בסקריפט שמפעיל את בקשות ההרשאות בסביבת זמן הריצה:
בשדה Project Settings > iOS > Other Settings > Location Usage Description, מזינים את שם האפליקציה שמבקשת הרשאות.
מפעילים את שירותי המיקום של Unity כדי להפעיל את בקשת ההרשאה בסביבת זמן הריצה, באופן הבא:
public void OnEnable() { Input.location.Start(); } public void OnDisable() { Input.location.Stop(); }
למידע נוסף, עיינו במסמכי העזרה של
LocationService
.
בדיקת הזמינות של נתונים גיאו-מרחביים במיקום הנוכחי של המכשיר
מכיוון ש-Geospatial API משתמש בשילוב של VPS ו-GPS כדי לקבוע תנוחה גיאוספטית, אפשר להשתמש ב-API כל עוד המכשיר יכול לקבוע את המיקום שלו. באזורים שבהם רמת הדיוק של ה-GPS נמוכה, כמו מקומות סגורים וסביבות עירוניות צפופות, ה-API יתבסס על כיסוי VPS כדי ליצור תנוחות עם רמת דיוק גבוהה. בתנאים רגילים, מערכת VPS יכולה לספק דיוק מיקום של כ-5 מטרים ודיוק סיבוב של 5 מעלות. אפשר להשתמש ב-AREarthManager.CheckVpsAvailability()
כדי לבדוק אם יש כיסוי של VPS במיקום נתון.
אפשר להשתמש ב-Geospatial API גם באזורים ללא כיסוי של VPS. בסביבות חוץ עם מעט או בלי חסימות מעל הראש, יכול להיות ש-GPS יספיק ליצירת תנוחה עם דיוק גבוה.
המאמרים הבאים
- קבלת תנוחת המיקום הגיאוגרפי של מצלמת המכשיר כדי לקבוע את המיקום המדויק של המכשיר של המשתמש בעולם האמיתי.
- בדיקת הזמינות של VPS במיקום נתון של מכשיר.