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

概览

如果你是 visionOS 的新用户,可以从新的 Xcode 项目开始,了解平台特性,并熟悉 visionOS 的内容和技术。当你为 visionOS 构建应用时,SwiftUI 是一个极佳的选择,因为它能让你完全访问 visionOS 的特性。尽管你也可以使用 UIKit 来构建应用的部分内容,但你需要使用 SwiftUI 来实现许多特定于平台的特性。

演示视频

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

Scene with a window

Scene with a window and 3D objects

创建你的 Xcode 项目

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

在创建新的 visionOS 应用时,你可以从配置对话框中配置你的应用的初始场景类型。如果你想在你的初始场景中主要显示 2D 内容,选择窗口(Window) 作为你的初始场景类型。如果主要是 3D 内容,选择体(Volume) 。你也可以添加一个沉浸式场景,将你的内容放置在人的周围环境中。

当你想从你的应用中创建或展示 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 事件处理代码:

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

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

  • 键盘输入。人们可以使用连接的鼠标、触摸板或键盘与项目进行交互,触发菜单命令,执行手势。

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

构建并运行你的应用

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

点击并拖动你的应用内容下方的窗口条,重新定位环境中的窗口。将指针移到窗口条旁边的圆圈上,显示窗口的关闭按钮。将光标移动到窗口的一个角落,将窗口条变为调整大小的控制器。

注意

应用不应该控制空间中窗口的位置。系统将每个窗口放在其初始位置,并根据与应用的进一步交互更新该位置。

关于如何在模拟器中与你的应用交互的更多信息,请参阅在 visionOS 模拟器中与你的应用交互

© 版权声明
THE END
喜欢就支持一下吧
点赞0

Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYwOWHeJ' (Errcode: 28 - No space left on device) in /www/wwwroot/583.cn/wp-includes/class-wpdb.php on line 2345
admin的头像-五八三
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

图形验证码
取消
昵称代码图片