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¶
CenterMode¶
- C#
public ARSession.ARCenterMode CenterMode
AR中心模式。可随时修改,立即生效。如果指定的模式不可用,它将会被自动修改为可用的模式。
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 或 Scene.BlockRootController 。
CenterObject¶
- C#
public GameObject CenterObject { get; }
这个session在当前帧使用的中心物体。
这个物体表示在Unity空间中不运动的物体或这个物体的父节点。它可能是 ARSession.Origin , ARAssembly.Camera 或某个 target 。 Target 可以是包含以下任一组件的物体: TargetController , SparseSpatialMapRootController 或 Scene.BlockRootController 。在使用稀疏空间地图和EasyAR Mega的时候,实际的中心 GameObject 是root节点下具体定位到的map或block物体, ARSession.CenterObject 是这个物体的父节点。更详细的说明可以查看 ARSession.ARCenterMode 的描述。
Assembly¶
- C#
public ARAssembly Assembly { get; }
AR组件的组装体。
FrameCameraParameters¶
- C#
public Optional< CameraParameters > FrameCameraParameters { get; }
当前帧的 CameraParameters 。
AvailableCenterMode¶
- C#
public IReadOnlyList< ARSession.ARCenterMode > AvailableCenterMode { get; }
当前session可用的中心模式。
Origin¶
- C#
public GameObject Origin { get; }
在任一运动跟踪功能运行时的session原点。
TrackingStatus¶
- C#
public Optional< MotionTrackingStatus > TrackingStatus { get; }
在任一运动跟踪功能运行时的运动跟踪状态。
State¶
- C#
public ARSession.SessionState State { get; }
当前session的状态。
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频率相同。
StateChanged¶
- C#
public event Action< ARSession.SessionState > StateChanged
session状态改变的事件。
Methods¶
ImageCoordinatesFromScreenCoordinates¶
从屏幕坐标系([0, 1]^2)变换到图像坐标系([0, 1]^2)。 pointInView 需要被归一化到[0, 1]^2。