当用户调整窗口大小时,我尝试缩放体积窗口的内容。当我使用修饰符
aspectRatio(contentMode: .fill)
时,内容不会调整大小。使用 scaledToFit()
不会缩放,并且会莫名其妙地扭曲窗口和内容。
调整窗口大小时如何缩放体积窗口的内容?
import RealityKit
import SwiftUI
@main
struct SandboxApp: App {
var body: some SwiftUI.Scene {
WindowGroup {
ContentView()
}
.windowStyle(.volumetric)
.defaultSize(width: 1, height: 1, depth: 1, in: .meters)
}
}
struct ContentView: View {
var body: some View {
RealityView { content in
content.add(ModelEntity(mesh: MeshResource.generateSphere(radius: 0.25),
materials: [SimpleMaterial(color: .red, isMetallic: false)]))
}
// .aspectRatio(contentMode: .fill) // does not resize
// .scaledToFill() // does not resize AND distorts volume and content
}
}
您可以轻松缩放位于体积窗口(在
RealityView
中)内的 3D 内容,但不会超出 2m X 2m X 2m
不可见的长方体。但是,您无法在运行时缩放体积窗口,因为体积场景大小在创建后是“不可变”的。另外,如果您使用 Model3D
视图,请不要忘记实现 model.resizable()
。