Class ThreeDofCameraDeviceFrameSource
- 名前空間
- easyar
- アセンブリ
- EasyAR.Sense.dll
シーン内の3DOFカメラデバイス(ThreeDofCameraDeviceFrameSource)を制御するMonoBehaviourで、Unity環境下で機能拡張を提供します。
このフレームソースは3DOF回転トラッキングデバイスであり、ARSessionで回転データを出力します。
public class ThreeDofCameraDeviceFrameSource : FrameSource
- 継承
-
ThreeDofCameraDeviceFrameSource
- 継承されたメンバー
フィールド
DesiredFocusMode
希望のフォーカスモード。DeviceOpenedイベントまたはOnEnable前に変更する必要があります。
注意:ハードウェアまたはシステム制限により、一部デバイスではフォーカス切り替えが無効になる場合があります。
public ThreeDofCameraDeviceFocusMode DesiredFocusMode
プロパティ
Camera
新規フレームソース作成時にのみ提供されます。Assemble()プロセス中のみアクセス可能です。
デスクトップ/モバイルデバイスでは、このカメラは現実世界のカメラデバイスに対応する仮想世界内のCameraを表します。投影行列と位置は実カメラと対応し、EasyARにより制御されます。ヘッドマウント上では、このカメラは診断テキスト表示専用であり、レンダリングには使用されず、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; }
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; }
FrameRateRange
フレームレート範囲。Openedがtrueの時のみ有効です。
public Vector2 FrameRateRange { get; }
IsAvailable
新規フレームソース作成時にのみ提供されます。Assemble()プロセス中のみアクセス可能です。
当該フレームソースが利用可能かどうか。
null値の場合、CheckAvailability()が呼び出され、Coroutine終了後に値が取得されます。
protected override Optional<bool> IsAvailable { get; }
IsCameraUnderControl
新規フレームソース作成時にのみ提供されます。Assemble()プロセス中のみアクセス可能です。
true時、セッションはカメラのtransformを更新し、カメラ画像をレンダリングします。
ヘッドマウント拡張作成時はfalseに設定してください。シーン内の3Dカメラは完全に制御する必要があります。特にVSTモードではカメラレンダリングを自身で処理してください。
protected override bool IsCameraUnderControl { get; }
IsHMD
新規フレームソース作成時にのみ提供されます。Assemble()プロセス中のみアクセス可能です。
当該フレームソースがヘッドマウントディスプレイかどうか。ヘッドマウントの場合、診断情報はカメラ前の3Dパネル上で表示されます。
一部フレームフィルターはデバイス上で異なる動作をします。
protected override bool IsHMD { get; }
Opened
カメラがオープンしているかどうか。
public bool Opened { get; }
Size
現在の画像サイズ。Openedがtrueの時のみ有効です。
set時はSupportedSize内で最も近いサイズが使用されます。
FrameRecorder録画中に画像サイズを変更すると、録画データの更新が停止します。クローズ後に再録画が必要です。
public Vector2Int Size { get; set; }
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()
public void Open()
イベント
DeviceClosed
デバイスクローズイベント。
public event Action DeviceClosed
DeviceOpened
デバイスオープンイベント。bool値は成功可否を示します。
public event Action<bool, PermissionStatus, string> DeviceOpened