SurfaceObserver 是 Unity 中适用于空间映射功能的主 API 门户。
用户应创建一个 SurfaceObserver,调用 Update 以生成 SurfaceChanged 事件,并针对所需的那些表面调用 GetMeshAsync,完成此对象后,调用 Dispose。
SurfaceObserver | SurfaceObserver 的基本构造函数。 |
Dispose | 不再需要 SurfaceObserver 时,调用 Dispose。这将确保对此对象进行相应的清除,但不影响 RequestMeshAsync 返回的任何网格、组件或对象。 |
RequestMeshAsync | 调用 RequestMeshAsync 可启动特定表面网格数据的烘培流程。系统可能需要用多个帧才能生成此数据。系统将通过指定的 SurfaceDataReadyDelegate 提供烘培数据。如果 dataRequest 中指定的参数无效,此方法将抛出 ArgumentNullExcpetion 和 ArgumentException。 |
SetVolumeAsAxisAlignedBox | 此方法在请求位置将观察体设置为轴对齐盒体。成功调用此方法后,可根据需要调整观察体的形状和/或将其移入场景。范围是从盒体中心沿各轴方向到其边缘的距离。 |
SetVolumeAsFrustum | 此方法在请求位置将观察体设置为椎体。成功调用此方法后,可根据需要调整观察体的形状和/或将其移入场景。 |
SetVolumeAsOrientedBox | 此方法在请求位置将观察体设置为定向盒体。成功调用此方法后,可根据需要调整观察体的形状和/或将其移入场景。范围是从盒体中心沿各轴方向到其边缘的距离。 |
SetVolumeAsSphere | 此方法在请求位置将观察体设置为球体。成功调用此方法后,可根据需要调整观察体的形状和/或将其移入场景。 |
Update | Update 会生成 SurfaceChanged 事件,这些事件将通过指定的回调进行传播。如果未指定任何回调,系统将抛出 ArgumentNullException。生成的回调将于此调用保持同步。包含多个 SurfaceObserver 的场景应考虑使用不同的回调,以便能够正确路由事件。 |
SurfaceChangedDelegate | SurfaceChangedDelegate 用于处理在 SurfaceObserver 上调用 Update 时生成的 SurfaceChanged 事件。应用程序可使用 bounds、changeType 和 updateTime 针对一组已知表面选择性地生成网格数据。 |
SurfaceDataReadyDelegate | SurfaceDataReadyDelegate 用于处理引擎完全生成网格时生成的事件。系统通过 GetMeshAsync 请求网格生成事件,并可能需要许多帧才能完全生成网格。 |