Как установить размер WindowGroup в VisionOS?

Я хочу установить размеры определенного размера при работе на VisionOS. На iOS и maOS у нас есть.defaultSizeмодификатор для этого. При сборке для VisionOS Xcode предлагает немного другой модификатор (с дополнительным параметром, называемым глубиной):

      .defaultSize(width: 200.0, height: 200.0, depth: 200.0)

Однако, похоже, это не имеет никакого эффекта — размер моего окна в симуляторе остается прежним даже после новой установки приложения.

Как я могу установить WindowGroupдо определенного размера в VisionOS?

1 ответ

Управление размерами тома SwiftUI

Указанный вами метод устанавливает размер по умолчанию для объемного окна.

      func defaultSize(width: CGFloat, 
                height: CGFloat,
                 depth: CGFloat) -> some Scene 

По умолчанию каждый параметр (ширина, высота, глубина) указывается в пунктах, что для объемных сцен в стандартном системном масштабе соответствует 1 миллиметру. Размер объемной сцены после создания неизменен. Если вы хотите следовать парадигме размера сцены RealityKit, используйте четвертый параметр инициализатора.inпараметр, позволяющий задать размер в метрах.

Для меня следующий подход помогает (прочитайте этот пост , чтобы увидеть содержимое тома в моем приложении VisionOS).

      import SwiftUI

@main struct ParticlesApp : App {
    var body: some Scene {
        WindowGroup {
            ContentView()                 // contains RealityKit scene
        }
        .windowStyle(.volumetric)
        .defaultSize(width: 2.0, height: 2.0, depth: 2.0, in: .meters)
    }
}


Управление размерами окна VisionOS

VisionOS SDK бета 2 (Xcode 15 бета 5)

Во второй бета-версии VisionOS внесены некоторые улучшения в проблему изменения размера 2D-окна. Вы можете контролировать размер окна, который меньше или равен2m X 1m(но не больше этого размера).

      @main struct SomeApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()                 // contains 2D view
        }
        .defaultSize(width: 0.5, height: 0.5, depth: 0.0, in: .meters)
    }
}

VisionOS SDK бета 1

.windowResizability(..)модификатор и все другие методы изменения размера недоступны в VisionOS Beta 1 (Xcode 15 beta 4 и ниже).

Вы можете найти аналогичный вопрос на форумах разработчиков .

Другие вопросы по тегам