Vision应用程序构建-01-创建您的第一个visionOS应用程序

使用SwiftUI构建一个新的visionOS应用程序,并添加特定于平台的功能。

概述

如果您是visionOS的新手,请从一个新的Xcode项目开始,以了解平台功能,并熟悉visionOS的内容和技术。当您为visionOS构建应用程序时,SwiftUI是一个很好的选择,因为它可以让您完全访问visionOS功能。虽然您也可以使用UIKit构建应用程序的部分内容,但您需要将SwiftUI用于许多平台独有的功能。

为visionOS开发需要配备苹果芯片的Mac。

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

有窗户的场景
带有窗口和3D对象的场景

从一个新的Xcode项目开始,并添加功能以熟悉visionOS内容和技术。在模拟器中运行您的应用程序,以验证您的内容是否与您预期的一样,并在设备上运行它以查看您的3D内容栩栩如生。

围绕一个或多个场景组织内容,这些场景管理应用程序的界面。每个场景都包含您想要显示的视图和控件,场景类型决定了您的内容是采用2D还是3D外观。SwiftUI专门为visionOS添加了3D场景类型,还为所有场景类型添加了3D元素和布局选项。

创建您的Xcode项目

通过选择文件>新建>项目,在Xcode中创建一个新项目。导航到模板选择器的visionOS部分,然后选择应用程序模板。出现提示时,为您的项目指定一个名称以及其他选项。

创建新的visionOS应用程序时,您可以从配置对话框中配置应用程序的初始场景类型。要在初始场景中主要显示2D内容,请选择一个窗口作为初始场景类型。对于主要是3D内容,请选择一个卷。您还可以添加一个身临其境的场景,将您的内容放置在人的周围。

当您想创建从应用程序中显示的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 Essentials

处理您视图中的事件

许多SwiftUI视图会自动处理交互——您所做的只是提供在交互发生时运行的代码。您还可以将SwiftUI手势识别器添加到视图中,以处理点击、长按、拖动、旋转和缩放手势。系统会自动将以下类型的输入映射到您的SwiftUI事件处理代码:

image.png

间接输入。这个人的眼睛表示互动的目标。要开始互动,对方用一只或两只手一起触摸拇指和食指。额外的手指和手部动作定义了手势类型。

image.png

直接输入。当一个人的手指占据与屏幕上项目相同的空间时,系统会报告交互。额外的手指和手部动作定义了手势类型。

image.png

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

有关在SwiftUI视图中处理交互的更多信息,请参阅SwiftUI Essentials教程中的处理用户输入

构建并运行您的应用程序

在模拟器中构建并运行您的应用程序,看看它看起来如何。visionOS的模拟器有一个虚拟背景作为应用程序内容的背景。使用键盘和鼠标或触控板在环境中导航并与应用程序交互。

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,539评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,911评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,337评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,723评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,795评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,762评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,742评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,508评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,954评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,247评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,404评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,104评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,736评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,352评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,557评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,371评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,292评论 2 352

推荐阅读更多精彩内容