Version: 2017.3

SurfaceObserver

class in UnityEngine.XR.WSA

切换到手册

描述

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

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

构造函数

SurfaceObserverSurfaceObserver 的基本构造函数。

公共函数

Dispose不再需要 SurfaceObserver 时,调用 Dispose。这将确保对此对象进行相应的清除,但不影响 RequestMeshAsync 返回的任何网格、组件或对象。
RequestMeshAsync调用 RequestMeshAsync 可启动特定表面网格数据的烘培流程。系统可能需要用多个帧才能生成此数据。系统将通过指定的 SurfaceDataReadyDelegate 提供烘培数据。如果 dataRequest 中指定的参数无效,此方法将抛出 ArgumentNullExcpetion 和 ArgumentException。
SetVolumeAsAxisAlignedBox此方法在请求位置将观察体设置为轴对齐盒体。成功调用此方法后,可根据需要调整观察体的形状和/或将其移入场景。范围是从盒体中心沿各轴方向到其边缘的距离。
SetVolumeAsFrustum此方法在请求位置将观察体设置为椎体。成功调用此方法后,可根据需要调整观察体的形状和/或将其移入场景。
SetVolumeAsOrientedBox此方法在请求位置将观察体设置为定向盒体。成功调用此方法后,可根据需要调整观察体的形状和/或将其移入场景。范围是从盒体中心沿各轴方向到其边缘的距离。
SetVolumeAsSphere此方法在请求位置将观察体设置为球体。成功调用此方法后,可根据需要调整观察体的形状和/或将其移入场景。
UpdateUpdate 会生成 SurfaceChanged 事件,这些事件将通过指定的回调进行传播。如果未指定任何回调,系统将抛出 ArgumentNullException。生成的回调将于此调用保持同步。包含多个 SurfaceObserver 的场景应考虑使用不同的回调,以便能够正确路由事件。

委托

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