یاد بگیرید که چگونه از API جایگذاری فوری یا raycastهای مداوم در برنامههای خود استفاده کنید.
پیشنیازها
قبل از ادامه، مطمئن شوید که مفاهیم اساسی AR و نحوه پیکربندی یک جلسه ARCore را درک کردهاید.
نامهای مفهومی
نام مفاهیم و روشهای خاص ممکن است بین بنیاد AR و ARCore SDK برای Unity متفاوت باشد. این موارد برای مرجع آسان در جدول زیر فهرست شدهاند.
| بنیاد AR | کیت توسعه نرمافزار ARCore برای یونیتی |
| پخشهای پرتوی مداوم | قرار دادن فوری |
ARRaycastManager.AddRaycast(Vector2, float) | Frame.RaycastInstantPlacement(float, float, float, out TrackableHit) |
ARRaycast | TrackableHit |
| (معادلی وجود ندارد) | InstantPlacementPoint |
ARRaycast.trackingState | InstantPlacementPointTrackingMethod |
پیشنیازها
این راهنما فرض میکند که شما قبلاً Unity را نصب و پیکربندی کردهاید. در غیر این صورت، برای مراحل نصب و راهاندازی به بخش «شروع به کار با افزونههای ARCore برای بنیاد AR» مراجعه کنید.
پیکربندی یک جلسه جدید با ARRaycastManager
قابلیت Instant Placement (پرتوهای پخش مداوم) به صورت پیشفرض در بسته AR Foundation موجود است. برای تنظیم صحنه خود، این مراحل را دنبال کنید.
بنیاد واقعیت افزوده ۴.x
اشیاء بازی از پیش تعریف شده AR Session Origin و AR Session را اضافه کنید.

کامپوننت AR Raycast Manager را به شیء بازی AR Session Origin اضافه کنید.

وقتی Raycast Prefab تهی نباشد، ARRaycastManager از prefab نمونهسازی میکند و به طور خودکار حالت آن را با حالت ARRaycast همگامسازی میکند.
بنیاد AR 5.x
اشیاء بازی از پیش تعریف شده XR Origin و AR Session را اضافه کنید.

کامپوننت AR Raycast Manager را به شیء بازی XR Origin اضافه کنید.

وقتی Raycast Prefab تهی نباشد، ARRaycastManager از prefab نمونهسازی میکند و به طور خودکار حالت آن را با حالت ARRaycast همگامسازی میکند.
بنیاد AR 6.x
اشیاء بازی از پیش تعریف شده XR Origin و AR Session را اضافه کنید.

کامپوننت AR Raycast Manager را به شیء بازی XR Origin اضافه کنید.

وقتی Raycast Prefab تهی نباشد، 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 شروع میشود و به محض اینکه ARCore حالت سهبعدی دقیقی داشته باشد، به Tracking تغییر میکند. وقتی حالت ردیابی Tracking تبدیل شود، به Limited برنمیگردد.