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 请求网格生成事件,并可能需要许多帧才能完全生成网格。 |
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.