Table of Contents

Class ARFoundationFrameSource

命名空間
easyar
組件
EasyAR.Sense.dll

在場景中將AR Foundation的輸出連接到EasyAR輸入的自訂幀源。透過EasyAR Sense的自訂相機功能提供AR Foundation支援。

這個幀源是一種運動追蹤裝置,在ARSession中會輸出運動資料。

為了使用這個幀源, ``AR Foundation`` 是必需的。你需要根據官方文件設定AR Foundation。

public abstract class ARFoundationFrameSource : FrameSource
繼承
ARFoundationFrameSource
Derived

屬性

AvailableCenterMode

僅在建立新幀源時提供。僅會在Assemble()過程中被存取。

所有可使用的中心模式。

protected override IReadOnlyList<ARSession.ARCenterMode> AvailableCenterMode { get; }

Camera

僅在建立新幀源時提供。僅會在Assemble()過程中被存取。

在桌面裝置或手機上,此相機代表現實環境中相機裝置在虛擬世界中對應的Camera,其投影矩陣和位置都將與真實相機對應,由EasyAR控制。在頭戴式顯示器上,此相機僅用於將診斷文字展示於眼前,不用於畫面渲染,相機也不受EasyAR控制。

protected override Camera Camera { get; }

CameraFrameStarted

僅在建立新幀源時提供。會在ARSession的整個生命週期內被存取。

相機幀是否開始輸入。

protected override bool CameraFrameStarted { get; }

DeviceCameras

僅在建立新幀源時提供。會在CameraFrameStarted為true時被存取。

提供相機幀資料的裝置相機。若相機幀資料由多個相機提供,列表中需包含所有相機。

確保在CameraFrameStarted為true時數值正確。

protected override List<FrameSourceCamera> DeviceCameras { get; }

Display

僅在建立新幀源時提供。僅會在Assemble()過程中被存取。

提供顯示系統資訊。你可以使用DefaultSystemDisplayDefaultHMDDisplay來取得預設的顯示資訊。

protected override IDisplay Display { get; }

IsAvailable

僅在建立新幀源時提供。僅會在Assemble()過程中被存取。

當前幀源是否可用。

若數值等於null,將呼叫CheckAvailability(),並在Coroutine結束後取得數值。

protected override Optional<bool> IsAvailable { get; }

IsCameraUnderControl

僅在建立新幀源時提供。僅會在Assemble()過程中被存取。

當值為true時,工作階段會更新相機的變換,並會渲染相機影像。

在建立頭戴式顯示器擴充時,應設為false。你應完全控制場景中的3D相機。你應處理相機渲染,特別是在VST模式下。

protected override bool IsCameraUnderControl { get; }

IsHMD

僅在建立新幀源時提供。僅會在Assemble()過程中被存取。

當前幀源是否為頭戴式顯示器。若是頭戴式顯示器,診斷資訊將顯示在相機前方的3D板子上。

部分幀篩選器在裝置上執行時會有不同行為。

protected override bool IsHMD { get; }

方法

CheckAvailability()

僅在建立新幀源時提供。僅會在Assemble()過程中被存取。

IsAvailable等於null時,用於檢查幀源是否可用的Coroutine

protected override IEnumerator CheckAvailability()

OnSessionStart(ARSession)

僅在建立新幀源時提供。僅會在StartSession()過程中被存取。

處理工作階段啟動,若此幀源已組裝進Assembly。此方法設計用於延遲初始化,你可在其中執行AR專屬的初始化工作。

protected override void OnSessionStart(ARSession session)

參數

session

OnSessionStop()

僅在建立新幀源時提供。會在StopSession(bool)或其它工作階段停止/損毀過程中被存取。

處理工作階段停止,若此幀源已組裝進Assembly。你可使用此方法銷毀StartSession()及工作階段執行中建立的資源並恢復內部狀態。在工作階段銷毀前會保證呼叫此方法。若幀源在工作階段前銷毀,將不會被呼叫,且工作階段將損毀。

protected override void OnSessionStop()