Table of Contents

Class ARKitFrameSource

名前空間
easyar
アセンブリ
EasyAR.Sense.dll

シーン内でARKitカメラデバイス(easyar.ARKitCameraDevice)を制御するMonoBehaviour。Unity環境下で機能拡張を提供します。

このフレームソースはモーション追跡デバイスであり、ARSession内でモーションデータを出力します。

public class ARKitFrameSource : FrameSource
継承
ARKitFrameSource
継承されたメンバー

フィールド

DesiredFocusMode

希望するフォーカスモード。DeviceOpenedイベントまたはOnEnable前に変更する必要があります。

注意:ハードウェアまたはシステムの制限により、一部デバイスではフォーカス切替が無効になる場合があります。

public ARKitCameraDeviceFocusMode DesiredFocusMode

プロパティ

Camera

新しいフレームソースが作成された場合にのみ提供されます。Assemble()プロセス中にのみアクセスされます。

デスクトップデバイスまたはモバイルデバイスでは、このカメラは現実世界のカメラデバイスに対応する仮想世界内のCameraを表します。その投影行列と位置は実際のカメラに対応し、EasyARによって制御されます。HMDでは、このカメラは目の前に診断テキストを表示するためだけに使用され、画面のレンダリングには使用されず、カメラもEasyARによって制御されません。

protected override Camera Camera { get; }

CameraCandidate

Cameraの代替。Unity XR Originが使用されていない場合にのみ有効です。未設定の場合はCamera.mainが使用されます。

public Camera CameraCandidate { get; set; }

CameraFrameStarted

新しいフレームソースが作成された場合にのみ提供されます。ARSessionのライフサイクル全体を通じてアクセスされます。

カメラフレームの入力が開始されたかどうか。

protected override bool CameraFrameStarted { get; }

DesiredFrameRate

希望するカメラ画像フレームレート。DeviceOpenedイベント前に変更する必要があります。

SupportedFrameRate内の値に最も近いサイズが使用されます。未設定の場合はデフォルト値が使用されます。

public Optional<double> DesiredFrameRate { get; set; }

DesiredSize

希望するカメラ画像サイズ。DeviceOpenedイベント前に変更する必要があります。

SupportedSize内の値に最も近いサイズが使用されます。未設定の場合はデフォルト値が使用されます。

public Optional<Vector2Int> DesiredSize { get; set; }

DeviceCameras

新しいフレームソースが作成された場合にのみ提供されます。CameraFrameStartedがtrueの場合にアクセスされます。

カメラフレームデータを提供するデバイスカメラ。カメラフレームデータが複数のカメラから提供される場合、リストにはすべてのカメラを含める必要があります。

CameraFrameStartedがtrueの場合に値が正しいことを確認してください。

protected override List<FrameSourceCamera> DeviceCameras { get; }

Display

新しいフレームソースが作成された場合にのみ提供されます。Assemble()プロセス中にのみアクセスされます。

表示システム情報を提供します。DefaultSystemDisplayまたはDefaultHMDDisplayを使用してデフォルトの表示情報を取得できます。

protected override IDisplay Display { get; }

FrameRate

デバイスの現在のフレームレート。Openedがtrueの場合のみ利用可能です。

setはSupportedFrameRate内の値に最も近いサイズを使用します。

public double FrameRate { get; set; }

IsAvailable

新しいフレームソースが作成された場合にのみ提供されます。Assemble()プロセス中にのみアクセスされます。

現在のフレームソースが利用可能かどうか。

値がnullの場合、CheckAvailability()が呼び出され、値はCoroutine終了後に取得されます。

protected override Optional<bool> IsAvailable { get; }

IsCameraUnderControl

新しいフレームソースが作成された場合にのみ提供されます。Assemble()プロセス中にのみアクセスされます。

値がtrueの場合、セッションはカメラのtransformを更新し、カメラ画像をレンダリングします。

HMD拡張を作成する場合、これはfalseである必要があります。シーン内の3Dカメラを完全に制御する必要があります。特にVSTモードでは、カメラのレンダリングを処理する必要があります。

protected override bool IsCameraUnderControl { get; }

IsHMD

新しいフレームソースが作成された場合にのみ提供されます。Assemble()プロセス中にのみアクセスされます。

現在のフレームソースがヘッドマウントディスプレイ(HMD)かどうか。HMDの場合、診断情報がカメラ前の3Dパネルに表示されます。

一部のフレームフィルターはデバイス上で異なる動作をします。

protected override bool IsHMD { get; }

Opened

カメラが開かれているかどうか。

public bool Opened { get; }

Size

現在の画像サイズ。Openedがtrueの場合のみ利用可能です。

setはSupportedSize内の値に最も近いサイズを使用します。

FrameRecorderの記録中に画像サイズを変更した場合、記録データの更新が停止し、閉じてから再録画が必要になります。

public Vector2Int Size { get; set; }

SupportedFrameRate

現在のデバイスがサポートするすべてのフレームレート。Openedがtrueの場合のみ利用可能です。

public List<double> SupportedFrameRate { get; }

SupportedSize

現在のデバイスがサポートするすべての画像サイズ。Openedがtrueの場合のみ利用可能です。

public List<Vector2Int> SupportedSize { get; }

メソッド

Close()

デバイスを閉じます。

public void Close()

OnSessionStart(ARSession)

新しいフレームソースが作成された場合にのみ提供されます。StartSession()プロセス中にのみアクセスされます。

このフレームソースがAssemblyに組み込まれている場合、セッションの起動を処理します。このメソッドは遅延初期化用に設計されており、AR固有の初期化作業をこのメソッド内で行うことができます。

protected override void OnSessionStart(ARSession session)

パラメーター

session

OnSessionStop()

新しいフレームソースが作成された場合にのみ提供されます。StopSession(bool)または他のセッション停止/破損プロセス中にアクセスされます。

このフレームソースがAssemblyに組み込まれている場合、セッションの停止を処理します。このメソッドを使用して、StartSession()およびセッション実行中に作成されたリソースを破棄し、内部状態を復元できます。セッション破棄前にこのメソッドが呼び出されることが保証されます。フレームソースがセッションより前に破棄された場合、このメソッドは呼び出されず、セッションは破損します。

protected override void OnSessionStop()

Open()

デバイスを開きます。Open()およびClose()を手動で呼び出さない場合、ARSession起動後に自動的にOpen()が呼び出されます。

public void Open()

イベント

DeviceClosed

デバイスが閉じられたイベント。

public event Action DeviceClosed

DeviceOpened

デバイスが開かれたイベント。bool値は成功したかどうかを示します。

public event Action<bool, PermissionStatus, string> DeviceOpened