Class ARFoundationFrameSource
- 命名空間
- easyar
- 組件
- EasyAR.Sense.dll
在場景中將AR Foundation 的輸出連接到EasyAR輸入的自定義frame source。通過EasyAR Sense的自定義相機功能提供AR Foundation支持。
這個frame source是一種運動跟蹤設備,在ARSession中會輸出運動數據。
爲了使用這個frame source, ``AR Foundation`` 是必需的。你需要根據官方文檔配置AR Foundation。
public abstract class ARFoundationFrameSource : FrameSource
- 繼承
-
ARFoundationFrameSource
- Derived
屬性
AvailableCenterMode
僅當創建一個新的frame source時提供。它僅會在Assemble()過程中被訪問。
所有可以使用的中心模式。
protected override IReadOnlyList<ARSession.ARCenterMode> AvailableCenterMode { get; }
Camera
僅當創建一個新的frame source時提供。它僅會在Assemble()過程中被訪問。
在桌面設備或手機上,該相機代表現實環境中相機設備在虛擬世界中對應的Camera,其投影矩陣和位置都將與真實相機對應,受EasyAR控制。在頭顯上,該相機僅用於將一些診斷文字展示在眼前,不用於畫面渲染,相機也不受EasyAR控制。
protected override Camera Camera { get; }
CameraFrameStarted
僅當創建一個新的frame source時提供。它會在ARSession的整個生命週期內被訪問。
相機幀是否開始輸入。
protected override bool CameraFrameStarted { get; }
DeviceCameras
僅當創建一個新的frame source時提供。它會在CameraFrameStarted爲true時被訪問。
提供相機幀數據的設備相機。如果相機幀數據由多個相機提供,列表中需要包含所有相機。
確保在CameraFrameStarted爲true時數值正確。
protected override List<FrameSourceCamera> DeviceCameras { get; }
Display
僅當創建一個新的frame source時提供。它僅會在Assemble()過程中被訪問。
提供顯示系統信息。你可以使用DefaultSystemDisplay或DefaultHMDDisplay來獲取默認的顯示信息。
protected override IDisplay Display { get; }
IsAvailable
僅當創建一個新的frame source時提供。它僅會在Assemble()過程中被訪問。
當前frame source是否可用。
如果數值等於null,CheckAvailability()會被調用,數值將在Coroutine結束後獲取。
protected override Optional<bool> IsAvailable { get; }
IsCameraUnderControl
僅當創建一個新的frame source時提供。它僅會在Assemble()過程中被訪問。
當值爲ture時,session 會更新相機的transform,且會渲染相機圖像.
在創建頭顯擴展時,它應爲false。你應該完全控制場景中的3D相機。你應該處理相機渲染,尤其是在VST模式下。
protected override bool IsCameraUnderControl { get; }
IsHMD
僅當創建一個新的frame source時提供。它僅會在Assemble()過程中被訪問。
當前frame source是否是頭顯。如果是頭顯,診斷信息將顯示在相機前的3D板子上。
部分frame filter在設備上運行會有不同。
protected override bool IsHMD { get; }
enabled
ARSession運行時開始/停止發送圖像流數據到EasyAR。在session啓動後,MonoBehaviour.enabled爲true時纔會開始發送。
public bool enabled { get; set; }
方法
CheckAvailability()
僅當創建一個新的frame source時提供。它僅會在Assemble()過程中被訪問。
IsAvailable等於null時用於檢查frame source是否可用的Coroutine。
protected override IEnumerator CheckAvailability()
OnSessionStart(ARSession)
僅當創建一個新的frame source時提供。它僅會在StartSession()過程中被訪問。
處理session啓動,如果這個frame source已經組裝進Assembly。這個方法設計上是用來做延遲初始化的,你可以在這個方法中做AR獨有的初始化工作。
protected override void OnSessionStart(ARSession session)
參數
session
OnSessionStop()
僅當創建一個新的frame source時提供。它會在StopSession(bool)或其它session停止/損壞過程中被訪問。
處理session停止,如果這個frame source已經組裝進Assembly。你可以使用這個方法銷燬StartSession()以及session運行中創建的資源並恢復內部狀態。在session銷燬之前這個方法會被保證調用。如果frame source在sessino之前銷燬,它將不會被調用,且session將損壞。
protected override void OnSessionStop()