Anında Yerleşim API'si veya kalıcı raycast'ler kullanabilirsiniz.
Ön koşullar
Temel artırılmış gerçeklik kavramlarını anladığınızdan emin olun ve devam etmeden önce ARCore oturumunun nasıl yapılandırılacağı hakkında daha fazla bilgi edinin.
Kavram adları
Bazı kavram ve yöntemlerin adları AR Foundation ile Unity için ARCore SDK'sı. Bunlar, kolayca ulaşabilmeniz için aşağıdaki tabloda listelenmiştir.
Artırılmış Gerçeklik (AR) Vakfı | Unity için ARCore SDK'sı |
Kalıcı ışın ışınları | Anında Yerleşim |
ARRaycastManager.AddRaycast(Vector2, float)
|
Frame.RaycastInstantPlacement(float, float, float, out TrackableHit)
|
ARRaycast
|
TrackableHit
|
(Denklik yok) | InstantPlacementPoint
|
ARRaycast.trackingState
|
InstantPlacementPointTrackingMethod
|
Ön koşullar
Bu kılavuzda, Unity'yi daha önce yüklediğiniz ve yapılandırdığınız varsayılmaktadır. Değilse bkz. AR Vakfı için ARCore Uzantılarını Kullanmaya Başlama kurulum ve kurulum adımlarına göz atın.
ARRaycastManager
ile yeni bir oturum yapılandırın
AR ile kullanıma hazır anında Yerleşim (kalıcı raycast'ler) kullanılabilir Temel paket. Sahnenizi oluşturmak için aşağıdaki adımları uygulayın.
AR Foundation 4.x
Önceden tanımlanmış oyun nesnelerini ekleyin: AR Session Origin ve AR Session.
AR Raycast Manager bileşenini AR Session Origin oyun nesnesi.
Raycast Prefab null olmadığında ARRaycastManager
ilk adımı oluşturur ve pozunu
ARRaycast
.
AR Foundation 5.x
Önceden tanımlanmış oyun nesnelerini ekleyin: XR Origin ve AR Session.
AR Raycast Manager bileşenini XR Origin oyun nesnesi.
Raycast Prefab null olmadığında ARRaycastManager
ilk adımı oluşturur ve pozunu
ARRaycast
.
Nesne yerleştirme
Yeni bir ARCore oturumunda,
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 izleme durumunu izleme
ARCore'un doğru bir 3D pozu varsa ARRaycast.trackingState
Tracking
olur.
Aksi takdirde Limited
ile başlar.
ve ARCore doğru 3D poz verdiğinde Tracking
'e geçiş yapar. İzleme durumu Tracking
olduğunda
bu işlem
Limited
.