WebSlate 性能和安全性
性能
由于 WebSlate 是加载的网页,因此请务必考虑性能影响:
场景通常以 60fps 的速度运行,最多 10 个活动 WebSlate。 无论内容如何,都可以观察到帧速率和一般性能下降与放置在场景中的 WebSlate 数量成比例。
内容在 WebSlate 中加载和执行,该线程与场景的更新和呈现线程 () 分开,因此不太可能直接影响帧速率。 但是,在运行时复杂性和内存使用量方面,考虑在网页上运行的 JavaScript 的成本仍然很重要。
为了帮助提高性能,屏幕外超过 30 的 WebSlates 会自动挂起。 它们在屏幕上恢复后会很快恢复,但这可能会影响托管页上主动运行的服务。 如果这是一个问题,开发人员可以使用 prefab 的“阻止挂起”复选框禁用挂起。 请注意,这样做可能会导致场景消耗更多资源,因为这些 WebSlate 始终保持活动状态。
由于 WebSlates 默认情况下没有任何外部导航 UI,因此最佳做法是仅加载自定义 URL,其中网站导航是循环的,可以在页面内完成。 例如,可以使用导航边栏或指向中心页面的链接来完成此作。
内容性能分析器 (CPA) 工具包括一个 WebSlate 分析器,用于测量Unity呈现管道在帧中呈现 WebSlate 的平均时间。
测量基于Unity的探查器记录器,需要“播放”模式。 分析器在每个 WebSlate 上移动相机,以收集足够的探查器样本并计算平均呈现时间。
这会在Unity的呈现管道的上下文中提供 WebSlate 呈现时间的第一阶段高级分析。 它不提供 WebSlate 内容本身的帧速率。
如果Unity的呈现管道超过当前 10 毫秒) (呈现 WebSlates 的阈值,则 CPA 工具将提供警告。
性能探查器也可以使用相同的度量值。 超过某个类别的预算限额时,性能探查器上的组通常会将颜色从绿色更改为红色。 目前,在合理化 WebSlates 的呈现时间预算之前,WebSlate 组仅显示为绿色。
安全限制
WebSlate 会锁定到它们导航到的 URL,从而防止恶意重定向。 阻止所有到外部域的意外超链接导航,除非显式列为允许的域 (请参阅下面的) 。
WebSlates 仅限于在初始域或指定的 URL 和服务器的重定向中进行导航。
WebSlate 中的导航仅限于 HTTPS。
阻止设备访问网络摄像头、麦克风和地理位置。
WebSlate 域允许列表
为了确保针对基于 URL 的意外攻击途径(例如钓鱼)的安全性,WebSlates 默认将导航限制为加载到 WebSlate 中第一页的域下的 URL。 例如,在 上 https://www.microsoft.com/ 启动的 WebSlate 将仅导航到其 URL 以“www.microsoft.com”开头的页面。 虽然这可确保用户不会意外地偏离预期导航流,但对于某些用例(例如用户身份验证)来说,它可能是限制过度的默认值,在此期间,可能会重定向到子域或第三方身份验证提供程序。
适应这些用例的方法是将域添加到 WebSlate 的允许列表。
自动添加 (建议) 的域
在 Unity 编辑器中使用 WebSlates 时,可以选择启用“收集允许的域”。 这将删除域导航限制,以便在“播放”模式下运行时可以自由导航以测试方案。 在“播放”模式下导航时,WebSlate 将记录你在后台访问的域。
在本例中,我们将从 microsoft.com 扩展导航,以包括 learn.microsoft.com。
退出“播放”模式后,会在顶级“资产”文件夹中找到名为“WebViewAllowedDomains.asset”的资产。
单击此资产会显示在初始 URL 域之外访问的其他域的列表。 可以右键单击、复制值,然后将这些值粘贴到 WebSlate 组件的“允许的域”字段中。
注意:此选项无法在上传的场景中启用。 保持启用“收集允许的域”不会消除最终场景中的限制。 但是,只要域添加到 WebSlate,允许的域列表就会保留,并且将允许导航。
手动添加域
如果已经知道需要哪些域,可以通过展开“允许的域”下拉列表并将补充域添加到Unity GUI 中的列表,手动将它们添加到 WebSlate。