屏幕之外的界面
visionOS 把界面从一块玻璃上解放出来,放进你真实的房间里。窗口可以飘在空中,3D 物体就摆在你眼前。用户用眼动和手势交互,不用触屏。
空间计算的核心,是让数字内容和真实空间共处一个场景。
这篇带你入门 visionOS 的空间开发。
窗口与空间
应用有窗口,也有可以沉浸式占据的空间。窗口像一张飘在空中的卡片,空间则是把你整个包裹进去的三维舞台。同一个应用可以从轻量窗口,一步步滑进完全沉浸的世界。
visionOS 速查
- 窗口悬浮的二维界面。
- 3D真实三维物体。
- 手势捏合与拖拽交互。
3D 内容
用 RealityKit 加载三维模型,把一个物体放进空间里。它有真实的光照和阴影,会随你的视角自然变化。
RealityView { content in
let model = ModelEntity(
mesh: .generateBox(size: 0.1))
content.add(model)
}
一个立体盒子就悬浮在用户面前。
手势与输入
用户用眼睛注视、用手捏合来点选,用拖拽来移动。输入不再是手指点屏幕,而是自然的手部动作,戴着手套也能顺畅操作,这套交互比触屏更自然,也更有未来感。
透视与沉浸
从窗口到完全沉浸,有不同程度的混合模式。你可以让数字内容和房间半透明叠加,也可以完全进入虚拟世界。
开发与调试
用 Xcode 的 visionOS 模拟器调试,在虚拟房间里看你的界面怎么摆。真机则要戴设备实际体验距离和尺度。
- 窗口悬浮空中。
- RealityKit 放 3D 物体。
- 眼动手势交互。
实战:放一个悬浮物体
在空间里放一个可旋转的盒子。
RealityView { content in
let box = ModelEntity(
mesh: .generateBox(size: 0.15),
materials: [SimpleMaterial(color: .blue)])
content.add(box)
}
盒子悬浮在眼前,用户注视捏合就能拿起它。空间计算做到这份上,界面终于跳出了那一块屏幕,开始和真实的房间共处一室。