מגדירים את ההגדרות של האפליקציה כך שתהיה לה אפשרות להשתמש ב-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, תצטרכו להוסיף ספריות כדי להפעיל תכונות גיאו-מרחביות באפליקציה.
- עוברים אל Edit (עריכה) > Project Settings (הגדרות הפרויקט) > XR Plug-In Management > תוספי ARCore.
- בקטע Optional Features (תכונות אופציונליות), בוחרים באפשרות Geospatial (גיאו-מרחבית).
הפעלת יכולות גיאו-מרחביות בהגדרת הסשן
אחרי שמפעילים את הפונקציונליות הגיאוספטיאלית באפליקציה, צריך להפעיל את היכולות הגיאוספטיאליות בהגדרת סשן ה-AR של האפליקציה כדי שתהיה לה אפשרות לתקשר עם ARCore API:
- מוודאים שהתיקייה Assets בפרויקט מכילה אובייקט ARCoreExtensionsConfig שניתן לכתוב לו סקריפט. כדי ליצור נכס כזה, לוחצים לחיצה ימנית בחלונית נכסים ובוחרים באפשרות יצירה > XR > הגדרה של תוספים ל-ARCore.
בוחרים את האובייקט ARCoreExtensionsConfig שאפשר לכתוב לו סקריפט בתיקייה Assets ומגדירים את Geospatial Mode (מצב גיאו-מרחבי) ל-Enabled (מופעל).
מגדירים את אובייקט המשחק ARCore extensions לשימוש בתצורה של ARCoreExtensionConfig. בחלונית Hierarchy, מאתרים את אובייקט המשחק ARCore Extensions שיצרתם כשהגדרתם את ARCore Extensions בפעם הראשונה, ומקשרים את השדה ARCore Extensions Config לאובייקט הניתן לתכנות ARCoreExtensionsConfig בתיקייה Assets.
הצגת בקשה למשתמש לאשר שימוש בנתוני המכשיר
אפליקציות שמשתמשות ב-ARCore Geospatial API חייבות להציג למשתמש בקשה לאשר ולהשתמש בנתונים מהמכשיר שלו. למידע נוסף, ראו דרישות בנושא פרטיות המשתמשים.
בדיקת התאימות של המכשיר
לא כל המכשירים שתומכים ב-ARCore תומכים גם ב-Geospatial API. כדי לבדוק את התאימות של המכשיר של המשתמש, צריך להתקשר למספר AREarthManager.IsGeospatialModeSupported()
.
אם הפונקציה מחזירה את הערך FeatureSupported.Unsupported
, אל תנסה להגדיר את הסשן.
בקשת הרשאות מיקום מהמשתמש בזמן ריצה
התוספים של ARCore מבקשים באופן אוטומטי את הרשאות המיקום המתאימות כשמפעילים את המצב הגיאו-מרחבי ב-ARCoreExtensions.Update()
. אם המשתמש לא נותן הרשאה למיקום מדויק, הסשן לא ממשיך ותופיע הודעת השגיאה 'הרשאה לא ניתנה'. זוהי שגיאה מסוג 'סיום', וצריך להפעיל מחדש את השירות כדי להפעיל שוב את בקשת ההרשאה.
בדיקת הזמינות של נתונים גיאו-מרחביים במיקום הנוכחי של המכשיר
מכיוון ש-Geospatial API משתמש בשילוב של VPS ו-GPS כדי לקבוע תנוחה גיאוספטית, אפשר להשתמש ב-API כל עוד המכשיר יכול לקבוע את המיקום שלו. באזורים שבהם רמת הדיוק של ה-GPS נמוכה, כמו מקומות סגורים וסביבות עירוניות צפופות, ה-API יתבסס על כיסוי VPS כדי ליצור תנוחות עם רמת דיוק גבוהה. בתנאים רגילים, מערכת VPS יכולה לספק דיוק מיקום של כ-5 מטרים ודיוק סיבוב של 5 מעלות. אפשר להשתמש ב-AREarthManager.CheckVpsAvailability()
כדי לבדוק אם יש כיסוי של VPS במיקום נתון.
אפשר להשתמש ב-Geospatial API גם באזורים ללא כיסוי של VPS. בסביבות חוץ עם מעט או בלי חסימות מעל הראש, יכול להיות ש-GPS יספיק ליצירת תנוחה עם דיוק גבוה.
המאמרים הבאים
- להשיג את המיקום הגיאו-מרחבי של מצלמת המכשיר כדי לקבוע את המיקום המדויק של המכשיר של המשתמש בעולם האמיתי.
- בדיקת הזמינות של VPS במיקום נתון של מכשיר.