SurfaceObserver

class in UnityEngine.XR.WSA

Switch to Manual

Description

SurfaceObserver 是 Unity 中适用于空间映射功能的主 API 门户。

用户应创建一个 SurfaceObserver,调用 Update 以生成 SurfaceChanged 事件,并针对所需的那些表面调用 GetMeshAsync,完成此对象后,调用 Dispose。

Constructors

SurfaceObserverSurfaceObserver 的基本构造函数。

Public Functions

Dispose不再需要 SurfaceObserver 时,调用 Dispose。这将确保对此对象进行相应的清除,但不影响 RequestMeshAsync 返回的任何网格、组件或对象。
RequestMeshAsync调用 RequestMeshAsync 可启动特定表面网格数据的烘培流程。系统可能需要用多个帧才能生成此数据。系统将通过指定的 SurfaceDataReadyDelegate 提供烘培数据。如果 dataRequest 中指定的参数无效,此方法将抛出 ArgumentNullExcpetion 和 ArgumentException。
SetVolumeAsAxisAlignedBoxThis 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.
SetVolumeAsFrustumThis 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.
SetVolumeAsOrientedBoxThis 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.
SetVolumeAsSphereThis 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.
UpdateUpdate 会生成 SurfaceChanged 事件,这些事件将通过指定的回调进行传播。如果未指定任何回调,系统将抛出 ArgumentNullException。生成的回调将于此调用保持同步。包含多个 SurfaceObserver 的场景应考虑使用不同的回调,以便能够正确路由事件。

Delegates

SurfaceChangedDelegateSurfaceChangedDelegate 用于处理在 SurfaceObserver 上调用 Update 时生成的 SurfaceChanged 事件。应用程序可使用 bounds、changeType 和 updateTime 针对一组已知表面选择性地生成网格数据。
SurfaceDataReadyDelegateSurfaceDataReadyDelegate 用于处理引擎完全生成网格时生成的事件。系统通过 GetMeshAsync 请求网格生成事件,并可能需要许多帧才能完全生成网格。