CompatibleAROriginFrameSource Class

Description

Abstract class for custom frame source to derive. It can be used if you are writting a frame source to represent device or frame input which has motion tracking ability by itself. It provides compatible Unity AR Foundation support for different versions. Use it only if your device SDK is based on Unity AR Foundation.

See also CompatibleVROriginFrameSource , ExternalDeviceMotionFrameSource , WorldOriginBasedFrameSource and RelativeOriginBasedFrameSource .

This frame source is one type of motion tracking device, and will output motion data in a ARSession .


MonoBehaviour Messages

protected override void Awake()

protected virtual void OnDestroy()

protected virtual void OnApplicationPause(bool pause)

protected virtual void OnEnable()

protected virtual void OnDisable()


Properties

ARSessionOrigin

C#

public UnityEngine.XR.ARFoundation.ARSessionOrigin ARSessionOrigin { get; set; }

The object Camera move against, will be automatically get from the scene.

Origin

C#

public override GameObject Origin { get; }

Origin of ARSession if the frame source can output motion tracking data.

Each type of motion tracking frame source has its own method to set the origin object containing some specific component. Some frame source will automatic pick a usable object from active objects in the scene or generate an object if the value is not set.

XROrigin

C#

public Unity.XR.CoreUtils.XROrigin XROrigin { get; set; }

XR Origin.

AvailableCenterMode

C#

public override IReadOnlyList< ARSession.ARCenterMode > AvailableCenterMode { get; }

Available center mode of the frame source.

ReceivedFrameCount

C#

public int ReceivedFrameCount { get; protected set; }

Received frame count from device. Usually used for debug. There are usually hardware issues if this value stop to increase, and re-plug may help when using some devices like Nreal.

IsAvailable

C#

public virtual abstract Optional<bool> IsAvailable { get; }

If the frame source is available.

If the value equals null, FrameSource.CheckAvailability must be called and the value can be accessed after Coroutine finish. This property is used by ARComponentPicker when picking frame source.

Camera

C#

public virtual Camera Camera { get; set; }

Camera used by the frame source in an ARSession .

Each type of frame source has its own method to check if the camera is usable, and will reject value set if the camera is not usable by the frame source. This property is used by ARComponentPicker when picking frame source to determine if the frame source is available, and some frame source will automatic pick a usable Camera from active objects in the scene in the process if the value is not set. You can set this value to a usable Camera before session start. The value cannot be changed after ARSession is ready if the frame source is selected in the session.


Methods

CheckAvailability

C#

public virtual System.Collections.IEnumerator CheckAvailability()

Coroutine to check frame source availability when FrameSource.IsAvailable equals null.