Table of Contents

Class ARCoreFrameSource

Namespace
easyar
Assembly
EasyAR.Sense.dll

In the scene, control the ARCore camera device (easyar.ARCoreCameraDevice) of MonoBehaviour, providing function extensions in the Unity environment.

This frame source is a motion tracking device that will output motion data in ARSession.

public class ARCoreFrameSource : FrameSource
Inheritance
ARCoreFrameSource
Inherited Members

Fields

DesiredFocusMode

The desired focus mode is effective only if modified before the DeviceOpened event or OnEnable.

Note: Due to hardware or system limitations, the focus switch may not work on some devices.

public ARCoreCameraDeviceFocusMode DesiredFocusMode

Field Value

Properties

Camera

Only provided when creating a new frame source. It will only be accessed during the Assemble() process.

protected override Camera Camera { get; }

Property Value

CameraCandidate

Alternative to Camera, valid only when Unity XR Origin is not used. If not set, Camera.main will be used.

public Camera CameraCandidate { get; set; }

Property Value

CameraFrameStarted

Only provided when creating a new frame source. It will be accessed throughout the lifecycle of ARSession.

Whether the camera frame has started inputting.

protected override bool CameraFrameStarted { get; }

Property Value

DeviceCameras

Only provided when creating a new frame source. It will be accessed when CameraFrameStarted is true.

Provide the device camera that provides camera frame data. If the camera frame data is provided by multiple cameras, all cameras need to be included in the list.

Ensure the value is correct when CameraFrameStarted is true.

protected override List<FrameSourceCamera> DeviceCameras { get; }

Property Value

Display

Only provided when creating a new frame source. It will only be accessed during the Assemble() process.

Provide display system information. You can use DefaultSystemDisplay or DefaultHMDDisplay to obtain default display information.

protected override IDisplay Display { get; }

Property Value

FrameRateRange

Frame rate range. Only available when Opened is true.

public Vector2 FrameRateRange { get; }

Property Value

IsAvailable

Only provided when creating a new frame source. It will only be accessed during the Assemble() process.

Whether the current frame source is available.

If the value is null, CheckAvailability() will be called, and the value will be obtained after the Coroutine ends.

protected override Optional<bool> IsAvailable { get; }

Property Value

IsCameraUnderControl

Only provided when creating a new frame source. It will only be accessed during the Assemble() process.

When the value is true, the session will update the camera's transform and render the camera image.

When creating a headset extension, it should be false. You should have full control over the 3D camera in the scene. You should handle camera rendering, especially in VST mode.

protected override bool IsCameraUnderControl { get; }

Property Value

IsHMD

Only provided when creating a new frame source. It will only be accessed during the Assemble() process.

Whether the current frame source is a headset. If it is a headset, diagnostic information will be displayed on the 3D board in front of the camera.

Some frame filters will behave differently on devices.

protected override bool IsHMD { get; }

Property Value

Opened

Whether the camera is open.

public bool Opened { get; }

Property Value

Size

Current image size. Only available when Opened is true.

public Vector2Int Size { get; }

Property Value

Methods

Close()

Close the device.

public void Close()

OnSessionStart(ARSession)

Only provided when creating a new frame source. It will only be accessed during the StartSession() process.

Handle session startup if this frame source has been assembled into Assembly. This method is designed for lazy initialization, and you can do AR-specific initialization work in this method.

protected override void OnSessionStart(ARSession session)

Parameters

session

OnSessionStop()

Only provided when creating a new frame source. It will be accessed during StopSession(bool) or other session stop/damage processes.

Handle session stop if this frame source has been assembled into Assembly. You can use this method to destroy StartSession() and resources created during session operation and restore internal state. This method is guaranteed to be called before the session is destroyed. If the frame source is destroyed before the session, it will not be called, and the session will be damaged.

protected override void OnSessionStop()

Open()

Open the device. If Open() and Close() are not manually called, ARSession will automatically Open() after startup.

public void Open()

Events

DeviceClosed

Event when the device is closed.

public event Action DeviceClosed

Event Type

DeviceOpened

Event when the device is opened, the bool value indicates whether it is successful.

public event Action<bool, PermissionStatus, string> DeviceOpened

Event Type