הפעלה של Geospatial API לאפליקציית Unity (AR Foundation) שמטרגטת ל-iOS

קובעים את הגדרות האפליקציה כדי שהיא תוכל להשתמש ב-Geospatial API.

דרישות מוקדמות

לפני שממשיכים, חשוב לוודא שאתם מבינים את המושגים הבסיסיים של AR ואת האופן שבו מגדירים סשן של ARCore.

לקבלת מידע נוסף על ה-API Geospatial, עיינו במאמר מבוא ל-Geospatial API.

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

כדי להשתמש ב-ARCore Geospatial API, הפרויקט צריך לתמוך ב-AR Foundation וב-ARCore extensions for AR Foundation.

הפעלת ARCore API

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

עדיף להשתמש בהרשאה ללא מפתח, אבל יש גם תמיכה בהרשאה של מפתח API.

צריך להוסיף את הספריות הנדרשות לאפליקציה

אחרי שנתתם לאפליקציה הרשאה לקרוא ל-ARCore API, עליכם להוסיף ספריות כדי להפעיל תכונות גיאו-מרחביות באפליקציה.

  1. עוברים אל עריכה > הגדרות פרויקט > ניהול פלאגין XR > תוספי ARCore. מוודאים שהאפשרות תמיכה ב-iOS מופעלת מסומנת.
  2. בקטע תכונות אופציונליות, בוחרים באפשרות גיאו-מרחבי.

הפעלת יכולות גיאו-מרחביות בהגדרת הסשן

אחרי שמפעילים את הפונקציונליות הגאו-מרחבית באפליקציה, צריך להפעיל את היכולות הגאו-מרחביות בתצורה של סשנים ב-AR של האפליקציה, כדי לתקשר עם ה-ARCore API:

  1. מוודאים שהתיקייה Assets של הפרויקט מכילה אובייקט ARCoreתוספותConfig שניתן לסקריפט. כדי ליצור נכס, לוחצים לחיצה ימנית בחלונית Assets (נכסים) ובוחרים באפשרות Create > XR > ARCore extensions Config (יצירה של תוספי ARCore).
  2. בוחרים את אובייקט הסקריפט ARCoreExtensionsConfig שניתן לעריכה בתיקייה ARCoreExtensionsConfig, ומגדירים את האפשרות ARCoreExtensionsConfig (מצב גיאוגרפי) לערך ARCoreExtensionsConfig.

  3. מגדירים את אובייקט המשחק ARCore Extensions כך שישתמש בתצורה ARCoreתוספותConfig. בחלונית היררכיה, מאתרים את אובייקט המשחק תוספי ARCore שיצרתם כשהגדרתם לראשונה את תוספי ARCore, ומחברים את השדה ARCore extensions Config (הגדרת התצורה של תוספי ARCore) לאובייקט ARCore ExtensionsConfig שניתן לסקריפט בתיקייה Assets.

הצגת בקשה מהמשתמש לאפשר שימוש בנתוני המכשיר

באפליקציות שמשתמשות ב-ARCore Geospatial API, תתבקשו לאשר את השימוש בנתונים מהמכשיר שלהם ולאפשר את השימוש בהם. למידע נוסף, כדאי לעיין בדרישות בנושא פרטיות המשתמשים.

בדיקת תאימות המכשיר

לא כל המכשירים שתומכים ב-ARCore תומכים גם ב-Geospatial API. כדי לבדוק אם יש תאימות למכשיר של המשתמש, צריך לבצע קריאה ל-AREarthManager.IsGeospatialModeSupported(). אם הפעולה הזו מחזירה את הערך FeatureSupported.Unsupported, אין לנסות להגדיר את הסשן.

בקשת הרשאות מיקום מהמשתמש בזמן הריצה

כדי להפעיל את שירותי המיקום של Unity בסקריפט שמפעיל את הבקשות להרשאות בזמן ריצה, צריך לבצע את הפעולות הבאות:

  1. בשדה Project Settings > iOS > Other Settings > Location Usage Description, מזינים את שם האפליקציה שמבקשת הרשאות.

  2. כך תפעילו את שירותי המיקום של Unity כך שיפעילו את בקשת ההרשאה בזמן ריצה:

    public void OnEnable()
    {
        Input.location.Start();
    }
    
    public void OnDisable()
    {
        Input.location.Stop();
    }
    

    מידע נוסף זמין במסמכי התיעוד של Unity LocationService.

בדיקת הזמינות הגאו-מרחבית במיקום הנוכחי של המכשיר

ה-API הגיאו-מרחבי משתמש בשילוב של VPS ו-GPS כדי לקבוע תנוחה גיאו-מרחבית, ולכן אפשר להשתמש ב-API כל עוד המכשיר מסוגל לקבוע את המיקום שלו. באזורים עם רמת דיוק נמוכה ב-GPS, כמו שטחים פנימיים וסביבות עירוניות צפופות, ה-API יסתמך על כיסוי VPS כדי ליצור תנוחות ברמת דיוק גבוהה. בתנאים אופייניים, VPS יכול לספק דיוק מיקום של כ-5 מטרים ודיוק סיבוב של 5 מעלות. יש להשתמש ב-AREarthManager.CheckVpsAvailability() כדי לבדוק אם למיקום מסוים יש כיסוי VPS.

ניתן להשתמש ב-Geospatial API גם באזורים שאין בהם כיסוי VPS. בסביבות בחוץ שבהן יש מעט הפרעות מתקורה או שאין בהן הפרעות ממבט-על, ייתכן שה-GPS יספיק כדי ליצור תנוחה ברמת דיוק גבוהה.

המאמרים הבאים