当前位置:首页|资讯

【VisionOS Pathway】在您的应用程序中创建完全沉浸式体验

作者:CG阿天发布时间:2024-09-09

在您的应用程序中创建完全沉浸式体验

通过将空间与您使用RealityKit或Metal创建的内容相结合,构建完全身临其境的体验。

概述

完全身临其境的体验用您创建的自定义内容取代了人看到的一切。您可以使用这种类型的体验来:

  • 提供临时的过渡体验

  • 为您的内容创造一个不受干扰的空间

  • 实施一个虚拟现实(VR)游戏

  • 呈现一个虚拟世界来探索

凭借完全身临其境的体验,您对屏幕上出现的一切负责。系统隐藏透视看到的环境并显示您提供的内容,仅在查看时显示对方的手。为了达到最佳性能,请使用RealityKit或Metal来创建和动画化您的内容。

通常,您将完全沉浸式体验与其他类型的体验相结合,并在它们之间提供过渡。当您先显示一个窗口,然后提供控件以进入您的沉浸式体验时,您会给人们时间为过渡做准备。如果他们更喜欢使用您应用程序的窗口,它还为他们提供了跳过体验的选项。

让用户做好应用过渡的准备

让人们控制他们何时进入或退出完全沉浸式体验,并提供与这些体验的明确过渡。清晰的视觉过渡使其更容易适应如此大的变化。突然的过渡可能会使人迷失方向、不愉快,或者让对方认为出了什么问题。

在启动时,显示窗口或其他内容,让用户看到周围环境。为该内容添加控件,以启动过渡到完全沉浸式体验,并提供对控件的工作内容的明确指示。在您的体验中,就如何退出体验提供明确的控制和说明。

警告

当您开始完全沉浸式体验时,visionOS定义了一个系统边界,该边界距离人头的初始位置约1.5米。如果他们的头部移动到该区域之外,系统会自动停止沉浸式体验并再次打开外部视频。此功能是一个助手,有助于防止某人与物体相撞。

打开一个身临其境的空间

要创造完全身临其境的体验,请打开一个ImmersiveSpace,并将其风格设置为full。沉浸式空间是一种SwiftUI场景,允许您将内容放置在人周围的任何地方。将full样式应用于场景会告诉系统隐藏直通视频,并仅显示应用程序的内容。

在应用程序对象的body属性或您管理SwiftUI场景的任何地方声明空格。以下示例展示了一个具有主窗口和完全沉浸式空间的应用程序。在启动时,应用程序会显示窗口。

要显示ImmersiveSpace,请使用从SwiftUI环境中获得的open操作将其打开。此操作异步运行,并使用提供的信息来查找和初始化您的场景。以下示例展示了一个带有solar标识符打开空间的按钮:

应用程序一次只能显示一个空间,在另一个空间可见时尝试打开一个空间是一个错误。要关闭一个开放空间,请使用dismiss操作。

有关显示空间的更多信息,请参阅ImmersiveSpace类型。

使用RealityKit绘制您的内容

当您的内容由基本形状或USD文件中的现有内容组成时,RealityKit效果很好。使用RealityKit实体组织场景内容,并使用组件和系统对该内容进行动画化。使用Reality Composer Pro直观地组装您的内容,并将动态着色器、动画、音频和其他行为附加到您的内容上。在场景中的RealityView中显示RealityKit场景的内容。

要在运行时加载Reality Composer Pro场景,请获取Reality Composer Pro软件包文件的URL,并加载场景的根实体。以下示例展示了如何为位于应用程序捆绑包中的软件包创建实体:

使用Metal 绘制您的内容

创建完全沉浸式场景的另一个选择是使用Metal自己绘制所有内容。使用Metal绘制内容时,请使用Compositor Services框架将该内容放在屏幕上。Compositor Services提供您设置Metal渲染引擎并开始绘图所需的代码。



Copyright © 2025 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1