通过用户调整大小来缩放体积窗口内容

问题描述 投票:0回答:1

当用户调整窗口大小时,我尝试缩放体积窗口的内容。当我使用修饰符

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
    }
}
swiftui realitykit
1个回答
0
投票

您可以轻松缩放位于体积窗口(在

RealityView
中)内的 3D 内容,但不会超出
2m X 2m X 2m
不可见的长方体。但是,您无法在运行时缩放体积窗口,因为体积场景大小在创建后是“不可变”的。另外,如果您使用 Model3D 视图,请不要忘记实现
model.resizable()
    

© www.soinside.com 2019 - 2024. All rights reserved.