Dowiedz się, jak korzystać z interfejsu Instant Placement API lub trwałych rzutów promieni w swoich aplikacjach.
Wymagania wstępne
Zanim przejdziesz dalej, upewnij się, że rozumiesz podstawowe pojęcia związane z AR i wiesz, jak skonfigurować sesję ARCore.
Nazwy pojęć
Nazwy niektórych pojęć i metod mogą się różnić w zależności od AR Foundation i pakietu ARCore SDK for Unity. Aby ułatwić Ci pracę, znajdziesz je w tabeli poniżej.
| AR Foundation | Pakiet ARCore SDK for Unity |
| Trwałe rzuty promieni | Natychmiastowe umieszczanie |
ARRaycastManager.AddRaycast(Vector2, float)
|
Frame.RaycastInstantPlacement(float, float, float, out TrackableHit)
|
ARRaycast
|
TrackableHit
|
| (Brak odpowiednika) | InstantPlacementPoint
|
ARRaycast.trackingState
|
InstantPlacementPointTrackingMethod
|
Wymagania wstępne
W tym przewodniku zakładamy, że masz już zainstalowany i skonfigurowany program Unity. Jeśli nie, zapoznaj się z instrukcjami instalacji i konfiguracji w artykule Pierwsze kroki z rozszerzeniami ARCore dla AR Foundation.
Konfigurowanie nowej sesji za pomocą ARRaycastManager
Natychmiastowe umieszczanie (trwałe rzuty promieni) jest dostępne od razu po zainstalowaniu pakietu AR Foundation. Aby skonfigurować scenę, wykonaj te czynności.
AR Foundation 4.x
Dodaj predefiniowane obiekty gry AR Session Origin i AR Session.

Dodaj komponent AR Raycast Manager do obiektu gry AR Session Origin.

Gdy Raycast Prefab nie jest wartością null, ARRaycastManager
utworzy instancję prefabrykatu i automatycznie zsynchronizuje jego pozę z pozą
ARRaycast.
AR Foundation 5.x
Dodaj predefiniowane obiekty gry XR Origin i AR Session.

Dodaj komponent AR Raycast Manager do XR Origin obiektu gry.

Gdy Raycast Prefab nie jest wartością null, ARRaycastManager
utworzy instancję prefabrykatu i automatycznie zsynchronizuje jego pozę z pozą
ARRaycast.
AR Foundation 6.x
Dodaj predefiniowane obiekty gry XR Origin i AR Session.

Dodaj komponent AR Raycast Manager do XR Origin obiektu gry.

Gdy Raycast Prefab nie jest wartością null, ARRaycastManager
utworzy instancję prefabrykatu i automatycznie zsynchronizuje jego pozę z pozą
ARRaycast.
Umieszczanie obiektu
W nowej sesji ARCore wykonaj test pozycji wskaźnika za pomocą
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.
…
}
}
Monitorowanie stanu śledzenia ARRaycast
Jeśli ARCore ma dokładną pozę 3D, ARRaycast.trackingState będzie mieć wartość Tracking.
W przeciwnym razie zacznie się od Limited
i przejdzie do Tracking, gdy ARCore będzie mieć dokładną pozę 3D. Gdy stan śledzenia zmieni się na Tracking,
nie wróci do
Limited.