המדריך למפתחים למיקומים מיידיים של AR Foundation

איך משתמשים ב-Instant Placement API או בקרני ריי קבועות באפליקציות שלכם.

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

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

שמות של מושגים

שמות של מושגים ושיטות מסוימים עשויים להיות שונים ב-AR Foundation וב-ARCore SDK for Unity. האפשרויות האלה מפורטות בטבלה הבאה.

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

המדריך הזה מתייחס למשתמש שכבר התקין והגדיר את Unity. אם לא, תוכלו לעיין במאמר תחילת השימוש ב-ARCore Extensions for AR Foundation כדי לקבל הוראות להתקנה ולהגדרה.

הגדרת סשן חדש באמצעות ARRaycastManager

האפשרות 'מיקום מיידי' (קרני ריי קבועות) זמינה כברירת מחדל בחבילת AR Foundation. פועלים לפי השלבים הבאים כדי להגדיר את הסצנה.

  1. מוסיפים את אובייקטי המשחק XR Origin ו-AR Session שהוגדרו מראש.

  2. מוסיפים את הרכיב AR Raycast Manager לאובייקט המשחק XR Origin.

כש-Raycast Prefab לא null, ARRaycastManager יוצר מופע של ה-Prefab וסוגר באופן אוטומטי את הסנכרון בין התנוחה שלו לתנוחה של ARRaycast.

  1. מוסיפים את אובייקטי המשחק XR Origin ו-AR Session שהוגדרו מראש.

  2. מוסיפים את הרכיב AR Raycast Manager לאובייקט המשחק XR Origin.

כש-Raycast Prefab לא null, ARRaycastManager יוצר מופע של ה-Prefab וסוגר באופן אוטומטי את הסנכרון בין התנוחה שלו לתנוחה של ARRaycast.

הצבת אובייקט

בסשן חדש של ARCore, מבצעים בדיקת התאמה באמצעות ARRaycastManager.AddRaycast(Vector2, float).

public ARRaycastManager RaycastManager; // set from the Editor Inspector.

void Update()
{
    Touch touch;
    if (Input.touchCount < 1 || (touch = Input.GetTouch(0)).phase != TouchPhase.Began)
    {
        return;
    }

    if (EventSystem.current.IsPointerOverGameObject(touch.fingerId))
    {
        return;
    }

    ARRaycast raycast = RaycastManager.AddRaycast(touch.position, _estimateDistance);
    if (raycast != null)
    {
        // You can instantiate a 3D object here if you haven’t set Raycast Prefab in the scene.
        
    }
}

מעקב אחרי סטטוס המעקב של ARRaycast

אם ל-ARCore יש תנוחה מדויקת בתלת-ממד, הערך של ARRaycast.trackingState יהיה Tracking. אחרת, הוא יתחיל ב-Limited ויעבור ל-Tracking ברגע שמערכת ARCore תזהה תנוחה מדויקת תלת-ממדית. אחרי שסטטוס המעקב יהיה Tracking, הוא לא יחזור לסטטוס Limited.