瞭解如何使用 Instant Placement API,或 或「持續光譜」。
必要條件
請務必瞭解基本 AR 概念 以及如何在繼續操作前設定 ARCore 工作階段。
概念名稱
AR Foundation 和 Unity 專用 ARCore SDK。我們將列於下表中,方便您參考。
必要條件
本指南假設您已安裝並設定 Unity。如果沒有,請參閱 開始使用 AR Foundation 適用的 ARCore 擴充功能 瞭解安裝與設定步驟
使用 ARRaycastManager
設定新的工作階段
立即透過 AR 提供即時刊登位置 (持續性光線燒錄內容) 基礎套件按照下列步驟設定場景。
AR 基礎 4.x
新增預先定義的遊戲物件 AR Session Origin 和 AR Session。
將 AR Raycast Manager 元件新增至 AR Session Origin 遊戲物件。
當 Raycast Prefab 不是空值時,ARRaycastManager
會實例化 Prefab,並自動將 Prefab 的姿態與 姿態同步
ARRaycast
。
AR 基礎 5.x
新增預先定義的遊戲物件 XR Origin 和 AR Session。
將 AR Raycast Manager 元件新增至 XR Origin 遊戲物件。
當 Raycast Prefab 不是空值時,ARRaycastManager
會實例化 Prefab,並自動將 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 設有正確的 3D 姿勢,ARRaycast.trackingState
會是 Tracking
。
否則,開頭會是 Limited
,等到 ARCore 取得準確的 3D 姿勢後,再轉換至 Tracking
。追蹤狀態變為 Tracking
後,
不會還原為
Limited
。