visionOS空间计算实战开发教程Day 2 使用RealityKit显示3D素材

我们在​​Day1​​中学习了如何创建一个visionOS应用,但在第一个Demo应用中我们的界面内容还是2D的,看起来和其它应用并没有什么区别。接下来我们先学习如何展示3D素材,苹果为方便开发人员,推出了RealityKit,接下来看如何使用。

首先我们需要一个3D素材,Apple在​​Quick Look​​​页面提供了一些素材,读者也可以到​​Sketchfab​​​等网站获取其它的免费或付费素材,推荐的格式是usdz,这是Pixar研发开源的一种文件格式,目前根据​​AOUSD​​官网其主要成员有苹果、英伟达、AutoDesk、Adobe和Unity等业界大佬。并且主流的设备软件基本都内置或由社区提供了对usdz的格式转换工具。

复制代码
import SwiftUI
import RealityKit

struct ContentView: View {
    private let url = URL(string: "https://developer.apple.com/augmented-reality/quick-look/models/teapot/teapot.usdz")!
    
    var body: some View {
        VStack {
            Text("Show teapot")
            Model3D(url: url) { model in
                model
                    .resizable()
                    .aspectRatio(contentMode: .fit)
                    .frame(width: 200, height: 200)
            } placeholder: {
                ProgressView()
            }
        }
        .padding()
    }
}

可以看到Model3D和SwiftUI中其它视图的使用差别并不大,因为我们要从网络上拉取资源,所以使用​​ProgressView​​来提示用户资源处于加载中的状态。

其它相关内容请见​​虚拟现实(VR)/增强现实(AR)&visionOS开发学习笔记​

相关推荐
报错小能手5 小时前
ios开发方向——swift错误处理:do/try/catch、Result、throws
开发语言·学习·ios·swift
小夏子_riotous7 小时前
openstack的使用——5. Swift服务的基本使用
linux·运维·开发语言·分布式·云计算·openstack·swift
开心就好202510 小时前
Flutter iOS应用混淆与安全配置详细文档指南
后端·ios
mCell12 小时前
MacOS 下实现 AI 操控电脑(Computer Use)的思考
macos·agent·swift
开心就好202512 小时前
苹果iOS应用开发上架与推广完整教程
后端·ios
用户693717500138412 小时前
XChat 为什么选择 Rust 语言开发
android·前端·ios
MonkeyKing12 小时前
Objective-C Runtime 完整机制:objc_class /cache/bits 源码解析
前端·ios
用户794572239541312 小时前
【DGCharts】iOS 图表渲染事实标准——8 种图表类型、高度可定制,3 行代码画出一条折线
swiftui·swift
秋雨梧桐叶落莳14 小时前
【iOS】 AutoLayout初步学习
学习·macos·ios·objective-c·cocoa·xcode
chaoguo12341 天前
Any metadata 的内存布局
swift·metadata·value witness table