了解如何使用 Instant Placement API,或 永久性光线投射。
前提条件
确保您了解 AR 基础概念 以及如何在继续之前配置 ARCore 现场录像。
概念名称
在 AR 基础和 ARCore SDK for Unity。下表列出了这些列,以便于您参考。
前提条件
本指南假定您已安装并配置 Unity。否则,请查看 ARCore Extensions for AR Foundation 使用入门 了解安装和设置步骤。
配置与“ARRaycastManager
”的新会话
通过 AR,即时放置(永久性光线投射)开箱即用 Foundation 软件包。请按以下步骤设置场景。
AR 基础 4.x
添加预定义的游戏对象 AR Session Origin 和 AR Session。
将 AR Raycast Manager 组件添加到 AR Session Origin 游戏对象。
当 Raycast Prefab 不为 null 时,ARRaycastManager
将实例化该预设件,并自动将其姿势与
ARRaycast
。
AR 基础 5.x
添加预定义的游戏对象 XR Origin 和 AR Session。
将 AR Raycast Manager 组件添加到 XR Origin 游戏对象。
当 Raycast Prefab 不为 null 时,ARRaycastManager
将实例化该预设件,并自动将其姿势与
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
开头。
然后转换到 Tracking
。一旦跟踪状态变为 Tracking
,
而不会还原到
Limited
。