Pelajari cara menggunakan Instant Placement API, atau raycast persisten, di aplikasi Anda sendiri.
Prasyarat
Pastikan Anda memahami konsep AR dasar dan cara mengonfigurasi sesi ARCore sebelum melanjutkan.
Nama konsep
Nama konsep dan metode tertentu mungkin berbeda antara AR Foundation dan ARCore SDK for Unity. Nama tersebut tercantum dalam tabel di bawah untuk memudahkan referensi.
| AR Foundation | ARCore SDK for Unity |
| Raycast persisten | Penempatan Instan |
ARRaycastManager.AddRaycast(Vector2, float)
|
Frame.RaycastInstantPlacement(float, float, float, out TrackableHit)
|
ARRaycast
|
TrackableHit
|
| (Tidak ada padanan) | InstantPlacementPoint
|
ARRaycast.trackingState
|
InstantPlacementPointTrackingMethod
|
Prasyarat
Panduan ini mengasumsikan bahwa Anda telah menginstal dan mengonfigurasi Unity. Jika belum, lihat Memulai ARCore Extensions for AR Foundation untuk mengetahui langkah-langkah penginstalan dan penyiapan.
Mengonfigurasi sesi baru dengan ARRaycastManager
Penempatan Instan (raycast persisten) tersedia langsung dengan paket AR Foundation. Ikuti langkah-langkah berikut untuk menyiapkan scene Anda.
AR Foundation 4.x
Tambahkan objek game yang telah ditentukan AR Session Origin dan AR Session.

Tambahkan komponen AR Raycast Manager ke dalam objek game AR Session Origin

Jika Raycast Prefab tidak null, ARRaycastManager
akan membuat instance prefab dan otomatis menyinkronkan posenya dengan pose
ARRaycast.
AR Foundation 5.x
Tambahkan objek game yang telah ditentukan XR Origin dan AR Session.

Tambahkan komponen AR Raycast Manager ke dalam objek game XR Origin.

Jika Raycast Prefab tidak null, ARRaycastManager
akan membuat instance prefab dan otomatis menyinkronkan posenya dengan pose
ARRaycast.
AR Foundation 6.x
Tambahkan objek game yang telah ditentukan XR Origin dan AR Session.

Tambahkan komponen AR Raycast Manager ke dalam objek game XR Origin.

Jika Raycast Prefab tidak null, ARRaycastManager
akan membuat instance prefab dan otomatis menyinkronkan posenya dengan pose
ARRaycast.
Menempatkan objek
Dalam sesi ARCore baru, lakukan hit test menggunakan
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.
…
}
}
Memantau status pelacakan ARRaycast
Jika ARCore memiliki pose 3D yang akurat, ARRaycast.trackingState akan menjadi Tracking.
Jika tidak, status akan dimulai dengan Limited
dan bertransisi ke Tracking setelah ARCore memiliki pose 3D yang akurat. Setelah status pelacakan menjadi Tracking,
status tersebut tidak akan kembali ke
Limited.