public void Update (XR.WSA.SurfaceObserver.SurfaceChangedDelegate onSurfaceChanged);

参数

onSurfaceChanged检测到 SurfaceChanged 事件时调用的回调。

描述

Update 会生成 SurfaceChanged 事件,这些事件将通过指定的回调进行传播。如果未指定任何回调,系统将抛出 ArgumentNullException。生成的回调将于此调用保持同步。包含多个 SurfaceObserver 的场景应考虑使用不同的回调,以便能够正确路由事件。

Update 是一项成本非常高的调用。其费用与可观察表面的数量成正比。因此,如果要定期调用 Update,则限制观察体可有助于提高性能。引擎提供 SpatialMapping.ObserverUpdate 性能分析标记,您可借助此标记来监控空间映射性能。

using UnityEditor;
using UnityEngine;
using UnityEngine.XR.WSA;
using System;

public class ExampleScript : MonoBehaviour { public SurfaceObserver m_Observer;

void UpdateSurfaceObserver() { // Update your surface observer to generate onSurfaceChanged callbacks m_Observer.Update(SurfaceChangedHandler); // all Update callbacks are now complete }

void SurfaceChangedHandler(SurfaceId id, SurfaceChange changeType, Bounds bounds, DateTime updateTime) { switch (changeType) { case SurfaceChange.Added: // handle Surface adds here break; case SurfaceChange.Updated: // handle Surface updates here break; case SurfaceChange.Removed: // handle Surface removal here break; } } }