Class FrameSource
- 命名空間
- easyar
- 組件
- EasyAR.Sense.dll
一個畫面來源代表畫面輸入資料的資料來源,它提供影像資料或同時提供動作資料。
你可以透過繼承FrameSource的一些子類型來實現自訂相機,但你不能直接繼承FrameSource。自訂相機通常表達一個新的裝置或新的資料輸入方式。
在自訂相機或頭戴式顯示器上使用試用產品(個人版授權、試用版XR授權或試用版Mega服務等)時,EasyAR Sense每次啟動後會在固定的有限時間內停止回應。
[DisallowMultipleComponent]
public abstract class FrameSource : MonoBehaviour
- 繼承
-
FrameSource
- Derived
屬性
AvailableCenterMode
僅當建立一個新的畫面來源時提供。它僅會在Assemble()過程中被存取。
所有可以使用的中心模式。
protected virtual IReadOnlyList<ARSession.ARCenterMode> AvailableCenterMode { get; }
Camera
僅當建立一個新的畫面來源時提供。它僅會在Assemble()過程中被存取。
在桌面裝置或手機上,該相機代表現實環境中相機裝置在虛擬世界中對應的Camera,其投影矩陣和位置都將與真實相機對應,受EasyAR控制。在頭戴式顯示器上,該相機僅用於將一些診斷文字展示在眼前,不用於畫面渲染,相機也不受EasyAR控制。
protected abstract Camera Camera { get; }
CameraFrameStarted
僅當建立一個新的畫面來源時提供。它會在ARSession的整個生命週期內被存取。
相機影格是否開始輸入。
protected abstract bool CameraFrameStarted { get; }
DeviceCameras
僅當建立一個新的畫面來源時提供。它會在CameraFrameStarted為true時被存取。
提供相機影格資料的裝置相機。如果相機影格資料由多個相機提供,清單中需要包含所有相機。
確保在CameraFrameStarted為true時數值正確。
protected abstract List<FrameSourceCamera> DeviceCameras { get; }
Display
僅當建立一個新的畫面來源時提供。它僅會在Assemble()過程中被存取。
提供顯示系統資訊。你可以使用DefaultSystemDisplay或DefaultHMDDisplay來取得預設的顯示資訊。
protected abstract IDisplay Display { get; }
IsAvailable
僅當建立一個新的畫面來源時提供。它僅會在Assemble()過程中被存取。
目前畫面來源是否可用。
如果數值等於null,CheckAvailability()會被呼叫,數值將在Coroutine結束後取得。
protected abstract Optional<bool> IsAvailable { get; }
IsCameraUnderControl
僅當建立一個新的畫面來源時提供。它僅會在Assemble()過程中被存取。
當值為true時,session會更新相機的transform,且會渲染相機影像。
在建立頭戴式顯示器擴充功能時,它應為false。你應該完全控制場景中的3D相機。你應該處理相機渲染,尤其是在VST模式下。
protected abstract bool IsCameraUnderControl { get; }
IsHMD
僅當建立一個新的畫面來源時提供。它僅會在Assemble()過程中被存取。
目前畫面來源是否為頭戴式顯示器。如果是頭戴式顯示器,診斷資訊將顯示在相機前的3D板子上。
部分畫面濾鏡在裝置上執行會有不同。
protected abstract bool IsHMD { get; }
方法
CheckAvailability()
僅當建立一個新的畫面來源時提供。它僅會在Assemble()過程中被存取。
IsAvailable等於null時用於檢查畫面來源是否可用的Coroutine。
protected virtual IEnumerator CheckAvailability()
OnSessionStart(ARSession)
僅當建立一個新的畫面來源時提供。它僅會在StartSession()過程中被存取。
處理session啟動,如果這個畫面來源已經組裝進Assembly。這個方法設計上是用來做延遲初始化的,你可以在這個方法中做AR獨有的初始化工作。
protected abstract void OnSessionStart(ARSession session)
參數
session
OnSessionStop()
僅當建立一個新的畫面來源時提供。它會在StopSession(bool)或其它session停止/損壞過程中被存取。
處理session停止,如果這個畫面來源已經組裝進Assembly。你可以使用這個方法銷毀StartSession()以及session執行中建立的資源並恢復內部狀態。在session銷毀之前這個方法會被保證呼叫。如果畫面來源在session之前銷毀,它將不會被呼叫,且session將損壞。
protected abstract void OnSessionStop()