Class CameraDeviceFrameSource
- 名前空間
- easyar
- アセンブリ
- EasyAR.Sense.dll
シーン内でeasyar.CameraDeviceを制御するMonoBehaviourで、Unity環境下で機能拡張を提供します。
このフレームソースはモーション追跡デバイスではなく、ARSessionではモーションデータを出力しません。
[RequireComponent(typeof(CameraDeviceDisplay))]
public class CameraDeviceFrameSource : FrameSource
- 継承
-
CameraDeviceFrameSource
- Derived
- 継承されたメンバー
フィールド
CameraOpenIndex
カメラを開く際に使用するデバイスインデックス。CameraOpenMethod == DeviceIndexの場合に使用され、DeviceOpenedイベント前に変更する必要があります。
[HideInInspector]
[SerializeField]
public int CameraOpenIndex
CameraOpenMethod
カメラを開く際に使用するメソッド。DeviceOpenedイベント前に変更する必要があります。
[HideInInspector]
[SerializeField]
public CameraDeviceFrameSource.CameraDeviceOpenMethod CameraOpenMethod
CameraOpenType
カメラを開く際に使用するカメラタイプ。CameraOpenMethod == PreferredTypeまたはSpecificTypeの場合に使用され、DeviceOpenedイベント前に変更する必要があります。
[HideInInspector]
[SerializeField]
public CameraDeviceType CameraOpenType
プロパティ
AndroidCameraApiType
Androidで、使用されているカメラAPI(camera1またはcamera2)を取得するために使用できます。Openedがtrueの場合のみ利用可能です。
public AndroidCameraApiType AndroidCameraApiType { get; }
AvailableCenterMode
新しいフレームソースの作成時にのみ提供されます。Assemble()プロセス中にのみアクセスされます。
使用可能なすべてのセンターモード。
protected override IReadOnlyList<ARSession.ARCenterMode> AvailableCenterMode { get; }
Camera
新しいframe source作成時にのみ提供されます。Assemble()プロセス中にのみアクセスされます。
デスクトップデバイスまたはスマートフォンでは、このカメラは現実世界のカメラデバイスに対応する仮想世界内のCameraを表し、その投影行列と位置は実際のカメラに対応し、EasyARによって制御されます。ヘッドマウントディスプレイでは、このカメラは診断テキストを目の前に表示するためだけに使用され、画面レンダリングには使用されず、カメラもEasyARによって制御されません。
protected override Camera Camera { get; }
CameraCandidate
Cameraの代替。未設定の場合はCamera.mainが使用されます。
public Camera CameraCandidate { get; set; }
CameraCount
OSが認識したカメラの数を取得します。
public static int CameraCount { get; }
CameraFrameStarted
新しいフレームソースの作成時にのみ提供されます。ARSessionのライフサイクル全体を通じてアクセスされます。
カメラフレームの入力が開始されているかどうか。
protected override bool CameraFrameStarted { get; }
CameraType
カメラタイプ。Openedがtrueの場合のみ利用可能です。
public CameraDeviceType CameraType { get; }
DesiredAndroidCameraApiType
希望するAndroid Camera Api。DeviceOpenedイベント前に変更した場合のみ有効です。
未設定の場合、DesiredCameraPreferenceに基づいて選択されます。
public Optional<AndroidCameraApiType> DesiredAndroidCameraApiType { get; set; }
DesiredCameraPreference
カメラデバイス作成時に使用するプリファレンス設定。セッション開始前に変更した場合のみ有効です。
public Optional<CameraDevicePreference> DesiredCameraPreference { get; set; }
DesiredFocusMode
希望するフォーカスモード。DeviceOpenedイベント前に変更した場合のみ有効です。
注意:ハードウェアまたはシステムの制限により、一部のデバイスではフォーカスの切り替えが無効になる場合があります。未設定の場合、DesiredCameraPreferenceに基づいて選択されます。
public Optional<CameraDeviceFocusMode> DesiredFocusMode { 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; }
FocusMode
フォーカスモード。Openedがtrueの場合のみ利用可能。
public CameraDeviceFocusMode FocusMode { set; }
FrameRateRange
フレームレート範囲。Openedがtrueの場合のみ利用可能。
public Vector2 FrameRateRange { get; }
FrameRateRangeIndex
デバイスの現在のフレームレート範囲のインデックス。Openedがtrueの場合のみ利用可能。
public int FrameRateRangeIndex { get; set; }
Index
カメライン��ックス。Openedがtrueの場合のみ利用可能です。
public int Index { 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
新しいframe source作成時にのみ提供されます。Assemble()プロセス中にのみアクセスされます。
現在のframe sourceがヘッドマウントディスプレイかどうか。ヘッドマウントディスプレイの場合、診断情報はカメラ前の3Dパネルに表示されます。
一部のframe filterはデバイス上で異なる動作をします。
protected override bool IsHMD { get; }
Opened
カメラが開いているかどうか。
public bool Opened { get; }
Parameters
cameraパラメータ。Openedがtrueの場合のみ利用可能。
public CameraParameters Parameters { get; set; }
Size
現在の画像サイズ。Openedがtrueの場合のみ利用可能。
setはSupportedSize内で最も近いサイズの値を使用します。
FrameRecorderの録画中に画像サイズを変更した場合、録画データの更新は停止し、一度閉じてから再録画する必要があります。
public Vector2Int Size { get; set; }
SupportedFrameRateRange
現在のデバイスがサポートする全てのフレームレート範囲。Openedがtrueの場合のみ利用可能。
public List<Vector2> SupportedFrameRateRange { get; }
SupportedSize
現在のデバイスでサポートされているすべての画像サイズ。Openedがtrueの場合のみ利用可能です。
public List<Vector2Int> SupportedSize { get; }
メソッド
AutoFocus()
Does auto focus once. It is only available when FocusMode is Normal or Macro.
public bool AutoFocus()
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()
SetFlashTorch(bool)
フラッシュトーチモードを設定します。Openedがtrueの場合のみ使用可能です。
public bool SetFlashTorch(bool on)
パラメーター
on
イベント
DeviceClosed
デバイスが閉じられたイベント。
public event Action DeviceClosed
DeviceOpened
デバイスが開かれたイベント。bool値は成功したかどうかを示します。
public event Action<bool, PermissionStatus, string> DeviceOpened
DeviceStateChanged
デバイスの切断や割り込みなどで使用不能になったイベント(Windowsのみ)。
public event Action<CameraState> DeviceStateChanged