Tìm hiểu cách sử dụng Instant Placement API hoặc persistent raycasts trong các ứng dụng của riêng bạn.
Điều kiện tiên quyết
Đảm bảo rằng bạn hiểu các khái niệm cơ bản về thực tế tăng cường và cách định cấu hình một phiên ARCore trước khi tiếp tục.
Tên khái niệm
Tên của một số khái niệm và phương thức có thể khác nhau giữa AR Foundation và ARCore SDK cho Unity. Các loại này được liệt kê trong bảng dưới đây để bạn dễ dàng tham khảo.
| AR Foundation | ARCore SDK cho Unity |
| Truy xuất tia liên tục | Vị trí tức thì |
ARRaycastManager.AddRaycast(Vector2, float)
|
Frame.RaycastInstantPlacement(float, float, float, out TrackableHit)
|
ARRaycast
|
TrackableHit
|
| (Không tương đương) | InstantPlacementPoint
|
ARRaycast.trackingState
|
InstantPlacementPointTrackingMethod
|
Điều kiện tiên quyết
Hướng dẫn này giả định rằng bạn đã cài đặt và định cấu hình Unity. Nếu không, hãy xem phần Bắt đầu sử dụng ARCore Extensions cho AR Foundation để biết các bước cài đặt và thiết lập.
Định cấu hình một phiên mới bằng ARRaycastManager
Tính năng Đặt tức thì (truyền tia liên tục) có sẵn ngay khi bạn dùng gói ARFoundation. Làm theo các bước sau để thiết lập cảnh.
AR Foundation 4.x
Thêm các đối tượng trò chơi xác định trước AR Session Origin và AR Session.

Thêm thành phần AR Raycast Manager vào đối tượng trò chơi AR Session Origin.

Khi Raycast Prefab không có giá trị rỗng, ARRaycastManager sẽ khởi tạo prefab và tự động đồng bộ hoá tư thế của prefab đó với tư thế của ARRaycast.
AR Foundation 5.x
Thêm các đối tượng trò chơi xác định trước XR Origin và AR Session.

Thêm thành phần AR Raycast Manager vào đối tượng trò chơi XR Origin.

Khi Raycast Prefab không có giá trị rỗng, ARRaycastManager sẽ khởi tạo prefab và tự động đồng bộ hoá tư thế của prefab đó với tư thế của ARRaycast.
AR Foundation 6.x
Thêm các đối tượng trò chơi xác định trước XR Origin và AR Session.

Thêm thành phần AR Raycast Manager vào đối tượng trò chơi XR Origin.

Khi Raycast Prefab không có giá trị rỗng, ARRaycastManager sẽ khởi tạo prefab và tự động đồng bộ hoá tư thế của prefab đó với tư thế của ARRaycast.
Đặt một đối tượng
Trong một phiên ARCore mới, hãy thực hiện kiểm thử lượt truy cập bằng cách sử dụng 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.
…
}
}
Theo dõi trạng thái theo dõi ARRaycast
Nếu ARCore có tư thế 3D chính xác, thì ARRaycast.trackingState sẽ là Tracking.
Nếu không, trạng thái này sẽ bắt đầu bằng Limited và chuyển sang Tracking khi ARCore có tư thế 3D chính xác. Sau khi trạng thái theo dõi chuyển thành Tracking, trạng thái này sẽ không quay lại Limited.