SurfaceObserver 是 Unity 中适用于空间映射功能的主 API 门户。
用户应创建一个 SurfaceObserver,调用 Update 以生成 SurfaceChanged 事件,并针对所需的那些表面调用 GetMeshAsync,完成此对象后,调用 Dispose。
SurfaceObserver | SurfaceObserver 的基本构造函数。 |
Dispose | 不再需要 SurfaceObserver 时,调用 Dispose。这将确保对此对象进行相应的清除,但不影响 RequestMeshAsync 返回的任何网格、组件或对象。 |
RequestMeshAsync | 调用 RequestMeshAsync 可启动特定表面网格数据的烘培流程。系统可能需要用多个帧才能生成此数据。系统将通过指定的 SurfaceDataReadyDelegate 提供烘培数据。如果 dataRequest 中指定的参数无效,此方法将抛出 ArgumentNullExcpetion 和 ArgumentException。 |
SetVolumeAsAxisAlignedBox | This method sets the observation volume as an axis aligned box at the requested location. Successive calls can be used to reshape the observation volume and/or to move it in the Scene as needed. Extents are the distance from the center of the box to its edges along each axis. |
SetVolumeAsFrustum | This method sets the observation volume as a frustum at the requested location. Successive calls can be used to reshape the observation volume and/or to move it in the Scene as needed. |
SetVolumeAsOrientedBox | This method sets the observation volume as an oriented box at the requested location. Successive calls can be used to reshape the observation volume and/or to move it in the Scene as needed. Extents are the distance from the center of the box to its edges along each axis. |
SetVolumeAsSphere | This method sets the observation volume as a sphere at the requested location. Successive calls can be used to reshape the observation volume and/or to move it in the Scene as needed. |
Update | Update 会生成 SurfaceChanged 事件,这些事件将通过指定的回调进行传播。如果未指定任何回调,系统将抛出 ArgumentNullException。生成的回调将于此调用保持同步。包含多个 SurfaceObserver 的场景应考虑使用不同的回调,以便能够正确路由事件。 |
SurfaceChangedDelegate | SurfaceChangedDelegate 用于处理在 SurfaceObserver 上调用 Update 时生成的 SurfaceChanged 事件。应用程序可使用 bounds、changeType 和 updateTime 针对一组已知表面选择性地生成网格数据。 |
SurfaceDataReadyDelegate | SurfaceDataReadyDelegate 用于处理引擎完全生成网格时生成的事件。系统通过 GetMeshAsync 请求网格生成事件,并可能需要许多帧才能完全生成网格。 |