 
							- 
							
							3次元におけるSwiftUIvisionOSアプリに深さと次元を足す準備をしましょう。ボリュームでアプリに3次元オブジェクトを持ち込む方法を発見し、Model 3D APIについて知り、コンテンツを配置し動的にする方法を学びます。またRealityViewでのUIアタッチメントの使用方法とコンテンツのジェスチャーのサポート方法をご紹介します。 関連する章- 0:00 - Introduction
- 1:49 - Volumes
- 2:57 - 3D views and layout
- 7:46 - RealityView
- 10:55 - 3D gestures
 リソース関連ビデオWWDC23
- 
							このビデオを検索
- 
							- 
										
										3:35 - MoonView struct MoonView { var body: some View { Model3D(named: "Moon") { phase in switch phase { case .empty: ProgressView() case let .failure(error): Text(error.localizedDescription) case let .success(model): model .resizable() .scaledToFit() } } } }
- 
										
										17:26 - Manipulation Gesture // Gesture combining dragging, magnification, and 3D rotation all at once. var manipulationGesture: some Gesture<AffineTransform3D> { DragGesture() .simultaneously(with: MagnifyGesture()) .simultaneously(with: RotateGesture3D()) .map { gesture in let (translation, scale, rotation) = gesture.components() return AffineTransform3D( scale: scale, rotation: rotation, translation: translation ) } } // Helper for extracting translation, magnification, and rotation. extension SimultaneousGesture< SimultaneousGesture<DragGesture, MagnifyGesture>, RotateGesture3D>.Value { func components() -> (Vector3D, Size3D, Rotation3D) { let translation = self.first?.first?.translation3D ?? .zero let magnification = self.first?.second?.magnification ?? 1 let size = Size3D(width: magnification, height: magnification, depth: magnification) let rotation = self.second?.rotation ?? .identity return (translation, size, rotation) } }
 
-