ARSession.ARCenterMode Enum

Description

AR中心模式。

注意:在EasyAR Sense Unity Plugin中总共有四种中心模式。在其它AR框架比如AR Foundation中可能并不存在类似的概念,通常它们里面的物体间相对关系的行为与这里的 ARSession.ARCenterMode.SessionOrigin 模式一致。

ARAssembly.Camera 和一部分AR组件之间的相对transform是受session控制的,其中的一个物体被称为 ARSession.CenterObject ,它在场景中不动,其它物体相对这个 ARSession.CenterObject 运动。这个物体是根据 ARSession.CenterMode 的数值进行选择的。

ARSession.CenterObject 表示在Unity空间中不运动的物体或这个物体的父节点。它可能是 ARSession.OriginARAssembly.Camera 或某个 targetTarget 可以是包含以下任一组件的物体: TargetController , SparseSpatialMapRootController 或 SpatialMapRootController 。在使用稀疏空间地图和云空间地图的时候,实际的中心 GameObject 是root节点下具体定位到的map物体, ARSession.CenterObject 是这个物体的父节点。

ARSession.ARCenterMode.FirstTargetARSession.ARCenterMode.SpecificTarget 模式下,当 target 在某一帧中未被识别到或丢失的时候, ARSession.CenterObject 可能会变成其它 target ,而如果在帧内找不到 targetARSession.CenterObject 会按先后顺序退变为 ARSession.ARCenterMode.SessionOriginARSession.ARCenterMode.Camera 里面第一个可用的模式的中心。

TargetARAssembly.Camera 的相对位置关系由当前session根据每帧 ARAssembly.OutputFrame 数据控制。 ARSession.OriginARAssembly.Camera 的相对位置关系,在 FrameSource.IsCameraUnderControl 为true的时候,也由当前session根据每帧 ARAssembly.OutputFrame 数据控制,而当 FrameSource.IsCameraUnderControl 为false的时候,它是不受当前session控制的,通常由其它AR框架比如AR Foundation控制。

Constant

Value

Description

FirstTarget

0

当前session是以第一个跟踪到的 target 为中心的。

你可以移动或旋转 targetARAssembly.Camera 会跟着动。在这个模式下你将无法手动控制 ARAssembly.Camera 的transform。如果任意一种运动跟踪在运行, ARSession.Origin 也会跟着动,它的transform也是不能手动控制的。

target 丢失之后,中心物体会重新计算。在使用稀疏空间地图和云空间地图的时候,实际的中心 GameObject 是root节点下具体定位到的map物体。并且,定位一张新的地图将会被认作从前一张地图定位过程中的丢失,中心物体会重新计算。

Camera

1

当前session是以 ARAssembly.Camera 为中心的。

你可以移动或旋转 ARAssembly.Cameratarget 会跟着动。在这个模式下你将无法手动控制 target 的transform。如果任意一种运动跟踪在运行, ARSession.Origin 也会跟着动,它的transform也是不能手动控制的。

SpecificTarget

2

当前session是以 ARSession.SpecificTargetCenter 为中心的。

你可以移动或旋转 targetARAssembly.Camera 会跟着动。在这个模式下你将无法手动控制 ARAssembly.Camera 的transform。如果任意一种运动跟踪在运行, ARSession.Origin 也会跟着动,它的transform也是不能手动控制的。

SessionOrigin

3

当前session是以 ARSession.Origin 为中心的。

你可以移动或旋转 ARSession.OriginARAssembly.Camera 会跟着动。在这个模式下你将无法手动控制 ARAssembly.Camera 的transform。如果有任何 target 正在被跟踪,它也会跟着动,并且它的transform也是不能手动控制的。