ARSession Class¶
Description¶
在场景中控制AR会话的 MonoBehaviour 。一个会话包含一组组装成 ARAssembly 的组件,并控制整个生命周期的数据流。这个组件是AR的入口,如果要实现完全不同的AR工作流可以创建一个新的会话类并在场景中替换这个类。
Camera 和一部分AR组件之间的相对transform是受session控制的,其中的一个物体被称为 ARSession.CenterObject ,它在场景中不动,其它物体相对这个 ARSession.CenterObject 运动。这个物体是根据 ARSession.CenterMode 的数值进行选择的。更详细的说明可以查看 ARSession.ARCenterMode 的描述。
Enums¶
public enum ARSession.ARCenterMode |
AR中心模式。 |
public enum ARSession.ARHorizontalFlipMode |
水平镜像渲染模式。 |
public enum ARSession.SessionState |
Session的状态。 |
MonoBehaviour Messages¶
private void Start() |
private void OnDestroy() |
Fields¶
HorizontalFlipNormal¶
- C#
public ARSession.ARHorizontalFlipMode HorizontalFlipNormal
正常相机的水平镜像渲染模式。可随时修改,立即生效。仅在使用图像或物体跟踪时可用。
HorizontalFlipFront¶
- C#
public ARSession.ARHorizontalFlipMode HorizontalFlipFront
前置相机的水平镜像渲染模式。可随时修改,立即生效。仅在使用图像或物体跟踪时可用。
Properties¶
SpecificTargetCenter¶
- C#
public GameObject SpecificTargetCenter { get; set; }
手动指定的中心物体。 ARSession.CenterMode == ARSession.ARCenterMode.SpecificTarget 时 ARSession.CenterObject 将被设成这个物体。可随时修改,立即生效。
该物体必须包含以下任一组件: TargetController , SparseSpatialMapRootController 或 SpatialMapRootController 。
CenterObject¶
- C#
public GameObject CenterObject { get; }
这个session在当前帧使用的中心物体。
这个物体表示在Unity空间中不运动的物体或这个物体的父节点。它可能是 ARSession.Origin , ARAssembly.Camera 或某个 target 。 Target 可以是包含以下任一组件的物体: TargetController , SparseSpatialMapRootController 或 SpatialMapRootController 。在使用稀疏空间地图和云空间地图的时候,实际的中心 GameObject 是root节点下具体定位到的map物体, ARSession.CenterObject 是这个物体的父节点。更详细的说明可以查看 ARSession.ARCenterMode 的描述。
FrameCameraParameters¶
- C#
public Optional< CameraParameters > FrameCameraParameters { get; }
当前帧的 CameraParameters 。
AvailableCenterMode¶
- C#
public IReadOnlyList< ARSession.ARCenterMode > AvailableCenterMode { get; }
当前session可用的中心模式。
TrackingStatus¶
- C#
public Optional< MotionTrackingStatus > TrackingStatus { get; }
在任一运动跟踪功能运行时的运动跟踪状态。
Delegates¶
FrameChangeAction¶
- C#
public delegate void FrameChangeAction( OutputFrame outputFrame, Quaternion displayCompensation)
输出帧发生改变的委托。
Events¶
FrameChange¶
- C#
public event ARSession.FrameChangeAction FrameChange
输出帧发生改变的事件。该事件会在数据本身产生变化的时候发生,频率受 FrameSource 数据变化(比如 CameraDevice 帧率)影响。
FrameUpdate¶
- C#
public event Action< OutputFrame > FrameUpdate
输出帧更新事件,该更新频率和MonoBehaviour Update频率相同。