הוראות לשימוש Instant Placement API, או שידורים משודרים באופן קבוע באפליקציות שלכם.
דרישות מוקדמות
חשוב לוודא שאתם מבינים את המושגים הבסיסיים של AR ואיך להגדיר סשן ARCore לפני שממשיכים.
שמות של מושגים
שמות של מושגים ושיטות מסוימים עשויים להיות שונים בין AR Foundation ARCore SDK ל-Unity. הפרטים האלה מפורטים בטבלה הבאה לנוחותכם.
AR Foundation | ARCore SDK ל-Unity |
העברות קרניים מתמשכות | מיקום מודעה מיידית |
ARRaycastManager.AddRaycast(Vector2, float)
|
Frame.RaycastInstantPlacement(float, float, float, out TrackableHit)
|
ARRaycast
|
TrackableHit
|
(אין שווי ערך) | InstantPlacementPoint
|
ARRaycast.trackingState
|
InstantPlacementPointTrackingMethod
|
דרישות מוקדמות
המדריך הזה מבוסס על ההנחה שכבר התקנתם והגדרתם את Unity. אם לא: תחילת העבודה עם תוספי ARCore ל-AR Foundation עבור שלבי ההתקנה וההגדרה.
הגדרת סשן חדש באמצעות ARRaycastManager
התכונה 'מיקום מיידי' (שידורים קבועים) זמינה באופן מיידי עם ה-AR חבילת הבסיס. פועלים לפי השלבים הבאים כדי להגדיר את הסצנה.
AR Foundation 4.x
מוסיפים את האובייקטים המוגדרים מראש במשחק AR Session Origin וגם AR Session.
הוספת הרכיב AR Raycast Manager אל אובייקט במשחק AR Session Origin.
אם הערך של Raycast Prefab לא מוגדר כ-null, ARRaycastManager
יפיק את הטעמה ותסנכרן באופן אוטומטי את התנוחה שלו
ARRaycast
AR Foundation 5.x
מוסיפים את האובייקטים המוגדרים מראש במשחק XR Origin וגם AR Session.
הוספת הרכיב AR Raycast Manager אל אובייקט במשחק XR Origin.
אם הערך של Raycast Prefab לא מוגדר כ-null, ARRaycastManager
יפיק את הטעמה ותסנכרן באופן אוטומטי את התנוחה שלו
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