其它相关内容请见虚拟现实(VR)/增强现实(AR)&visionOS开发学习笔记形状我们使用过的所有视图都是容器或设计用于在屏幕上展示预定义内容,但SwiftUI还内置了图形视图可创建自定义控件或用作闭包。这些视图与之前介绍过的类似,可使用大部分修饰符,但经过特别设计在屏幕上画自定义图形。通用形状SwiftUI允许我们创建预定义或自定义开关。……继续阅读 » Alan 12个月前 (01-18) 1623浏览 0评论1个赞
其它相关内容请见虚拟现实(VR)/增强现实(AR)&visionOS开发学习笔记状态在上一章,我们介绍了SwiftUI的主要特性,声明式语法。借助SwiftUI,我们可以按希望在屏幕上显示的方式声明视图,余下交由系统来创建所需的代码。但声明式语法不只用于组织视图,还可在应用状态发生变化时更新视图。例如,我们可以有下面图6-1中的界面,显示标题的T……继续阅读 » Alan 1年前 (2023-12-18) 5748浏览 0评论1个赞
本文我们要在visionOS内实现一个标题输出的动画效果。主要讲ViewModifier协议,修饰符(modifier)应用于视图或另一个视图修饰符,生成原值的另一个版本。在希望创建一个可应用于不同视图的修饰符时可实现ViewModifier协议。首先定义ViewModel,本例中的模型比较简单,仅定了三个变量,分别表示当前文本、标题输出是否完成以及最终的……继续阅读 » Alan 1年前 (2023-12-06) 1606浏览 0评论0个赞
其它相关内容请见虚拟现实(VR)/增强现实(AR)&visionOS开发学习笔记手势识别器手势是用户在屏幕上执行的动作,如点击、滑动或捏合。这些手势很难识别,因为屏幕上只能返回手指的位置。为此,Apple提供了手势识别器。手势识别器完成所有识别手势所需的计算。所以我们不用处理众多的事件和值,只需在等待系统监测到复杂手势时发送通知并进行相应处理即可……继续阅读 » Alan 1年前 (2023-12-05) 1937浏览 0评论1个赞
本例选择了《天空之城》的25张照片,组成5×5的照片墙)。首先我们在setupContentEntity方法中构建了一个纹理数组,将这25张照片添加到数组images中。其中封装了setup方法,借助于visionOS对沉浸式空间的支持,我们创建了三个平面,组成具有立体感的照片墙。在setup方法中调用了addChildEntities,对ima……继续阅读 » Alan 1年前 (2023-11-28) 1557浏览 0评论2个赞
我们在Day 8中演示了attachment的实现,本节的知识点是portal。portal相当于哆啦A梦里的任意门,它让我们可以打开另一个世界,这个世界独立于当前的世界,具有单独的光照系统并且由portal几何图形进行遮罩。要创建portal,首先就需要创建一个世界(makeWorld),在其中可以添加自己的实体。接着创建portal并将其关联至刚刚创建……继续阅读 » Alan 1年前 (2023-11-27) 1900浏览 0评论1个赞
本节我们开始初探在visionOS中添加动画效果,我们的入口文件和ContentView和Day 6中并没有什么区别,所以重点来看ViewModel和ImmersiveView。首先是ViewModel.swift文件: import SwiftUIimport RealityKitclass ViewModel:……继续阅读 » Alan 1年前 (2023-11-24) 2050浏览 0评论1个赞
在之前的学习中我们在空间中添加了3D模型,但在初始摆放后就无法再对其进行移动或做出修改。本节我们在Day 5显示和隐藏的基础上让我们模型可以实现拖拽效果,同时对纯色的立方体实现点击随机换色的功能。首先是入口文件,无需做出改变, import SwiftUI@mainstruct visionOSDemoApp: A……继续阅读 » Alan 1年前 (2023-11-23) 1895浏览 1评论1个赞
在Day 4中我们使用了ImmersiveSpace并在其中添加了一个立方体,但对这个立方体我们只配置了长宽高,并没有做进一步的操作。本文中我们会通过纹理和材质对这个立方体的六个面分别进行不同的绘制。首先我们将ImmersiveView分拆出来,先新建一个ImmersiveView.swift文件,这是一个视图文件,所以请选择User Interface下……继续阅读 » Alan 1年前 (2023-11-21) 1170浏览 0评论1个赞
细心的读者会发现在在Day1和Day2的示例中我们使用的都是WindowGroup。 @mainstruct visionOSDemoApp: App { var body: some Scene { WindowGroup { ContentView() ……继续阅读 » Alan 1年前 (2023-11-21) 1641浏览 0评论0个赞