VisionOS. Можете ли вы использовать RealityView вне ImmersiveSpace?

У меня есть приложение VisionOS, которое поддерживает как WindowGroup, так и ImmersiveSpace.

      import SwiftUI

@main
struct VisionApp: App {
    
    @State var immersionStyle: ImmersionStyle = .mixed
    
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
        
        ImmersiveSpace(id: "MySpace") {
            MySpace()
        }
        .immersionStyle(selection: $immersionStyle, in: .mixed)
        
    }
}

Окно - обычное окно. Я могу загружать свои представления SwiftUI, а также использовать другие приложения, такие как Safari. У меня есть кнопка для запуска ImmersiveSpace.

ImmersiveSpace не обеспечивает полного погружения. Есть несколько моделей и излучателей частиц, но в остальном вы все равно можете видеть все свое реальное окружение. Я все еще вижу окно своего приложения, но, к сожалению, при запуске ImmersiveSpace все остальные приложения переходят в фоновый режим.

Я попытался поместить RealityView внутри WindowGroup, но, похоже, это не работает:

      WindowGroup {
    RealityView {
        /// ...
        /// ...
}

Я подозреваю, что это намеренное поведение и ограничение ImmersiveSpace, но я прошу убедиться в этом.

1 ответ

Вы можете использовать RealityView как в обычном окне, так и в томе. Я только что попробовал разместить RealityView в каждом из них, и все работает нормально. Может быть, опубликовать больше своего кода?

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