概览

假如你是 visionOS 的新用户,能够重新的 Xcode 项目开端,了解渠道特性,并了解 visionOS 的内容和技能。当你为 visionOS 构建运用时,SwiftUI 是一个极佳的挑选,因为它能让你完全拜访 visionOS 的特性。虽然你也能够运用 UIKit 来构建运用的部分内容,但你需要运用 SwiftUI 来实现许多特定于渠道的特性。

演示视频

在任何 SwiftUI 运用中,你都能够运用场景(scene)将内容放置在屏幕上。一个场景包括要在屏幕上显现的视图和操控器。场景还定义了这些视图和操控器在屏幕上出现时的外观。在 visionOS 中,你能够在同一个场景中包括 2D 和 3D 的视图,而且你能够将这些视图呈现在一个窗口中,或作为人的周围环境的一部分。

VisionOS文档翻译与实践1-创建你的一个VisionOS应用

Scene with a window

VisionOS文档翻译与实践1-创建你的一个VisionOS应用

Scene with a window and 3D objects

创立你的 Xcode 项目

在 Xcode 中创立一个新项目,挑选 File > New > Project。导航到模板挑选器的 visionOS 部分,挑选 App 模板。在提示时,为你的项目指定一个名称以及其他选项。

在创立新的 visionOS 运用时,你能够从装备对话框中装备你的运用的初始场景类型。假如你想在你的初始场景中主要显现 2D 内容,挑选窗口(Window) 作为你的初始场景类型。假如主要是 3D 内容,挑选体(Volume) 。你也能够增加一个沉浸式场景,将你的内容放置在人的周围环境中。

VisionOS文档翻译与实践1-创建你的一个VisionOS应用

当你想从你的运用中创立或展示 3D 资产或场景时,包括一个 Reality Composer Pro 项目文件。运用这个项目文件,从基本形状和现有的 USDZ 资产中构建内容。你也能够运用它来为你的内容构建和测试自定义的 RealityKit 动画和行为。

修正现有的窗口

运用规范的 SwiftUI 视图构建你的初始界面。视图为你的界面供给基本内容,你能够运用 SwiftUI 修饰符自定义它们的外观和行为。例如,.background 修饰符在你的内容后边增加了一个部分透明的着色色彩:

@main
struct MyApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
               .background(.black.opacity(0.8))
        }
        ImmersiveSpace(id: "Immersive") {
            ImmersiveView()
        }
    }
}

要了解更多关于怎么运用 SwiftUI 创立和装备界面的信息,请参阅 SwiftUI 基础。

处理你的视图中的事情

许多 SwiftUI 视图自动处理交互,你需要做的便是供给当交互发生时运转的代码。你还能够增加 SwiftUI 手势辨认器到视图中,以处理点击、长按、拖拽、旋转和缩放手势。体系会自动将以下类型的输入映射到你的 SwiftUI 事情处理代码:

VisionOS文档翻译与实践1-创建你的一个VisionOS应用

  • 直接输入。人的眼睛指示交互的目标。要开端交互,人需要在一只或两只手上的拇指和食指之间进行触摸。额定的手指和手的动作定义了手势类型。

VisionOS文档翻译与实践1-创建你的一个VisionOS应用

  • 直接输入。当一个人的手指占据了屏幕上的物体的空间,体系会陈述交互。额定的手指和手的动作定义了手势类型。

VisionOS文档翻译与实践1-创建你的一个VisionOS应用

  • 键盘输入。人们能够运用衔接的鼠标、触摸板或键盘与项目进行交互,触发菜单命令,履行手势。

关于在 SwiftUI 视图中处理交互的更多信息,请参阅 SwiftUI 基础教程中的 Handling User Input 部分。

构建并运转你的运用

在模拟器中构建并运转你的运用,查看其外观。visionOS 的模拟器有一个虚拟布景作为你的运用内容的布景。运用你的键盘和鼠标或触摸板在环境中导航并与你的运用互动。

点击并拖动你的运用内容下方的窗口条,重新定位环境中的窗口。将指针移到窗口条周围的圆圈上,显现窗口的关闭按钮。将光标移动到窗口的一个旮旯,将窗口条变为调整巨细的操控器。

注意

运用不应该操控空间中窗口的方位。体系将每个窗口放在其初始方位,并依据与运用的进一步交互更新该方位。

关于怎么在模拟器中与你的运用交互的更多信息,请参阅在 visionOS 模拟器中与你的运用交互。