У меня проблемы с предварительным просмотром в Xcode 11.4. Мой код работает, когда мой телефон подключен, поэтому это не проблема кода, но при отключении сборка всегда терпела неудачу. Я хотел бы иметь возможность работать над своим проектом с другими файлами, не использующими AR, без этой ошибки. Когда я возобновляю предварительный просмотр этих других файлов, я блокируюсь из-за этой ошибки. Я уже поместил несколько строк в файл info.plist (использование камеры конфиденциальности и необходимые возможности устройства), но все еще не работает. Есть идея ?
import SwiftUI
import RealityKit
struct ContentView : View {
var body: some View {
return ARViewContainer().edgesIgnoringSafeArea(.all)
}
}
struct ARViewContainer: UIViewRepresentable {
func makeUIView(context: Context) -> ARView {
let arView = ARView(frame: .zero)
arView.enablePlacement()
return arView
}
func updateUIView(_ uiView: ARView, context: Context) {}
}
extension ARView {
func enablePlacement() {
let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(handleTap(recognizer:)))
self.addGestureRecognizer(tapGestureRecognizer)
}
@objc func handleTap(recognizer: UITapGestureRecognizer) {
let location = recognizer.location(in: self)
let results = self.raycast(from: location, allowing: .estimatedPlane, alignment: .vertical)
if let firstResult = results.first {
let mesh = MeshResource.generateBox(width: 0.5, height: 0.02, depth: 0.2)
var material = SimpleMaterial()
material.baseColor = try! MaterialColorParameter.texture(TextureResource.load(named: "glacier"))
let modelEntity = ModelEntity(mesh: mesh,materials: [material])
let anchorEntity = AnchorEntity(world: firstResult.worldTransform)
anchorEntity.addChild(modelEntity)
self.backgroundColor = .orange
self.scene.addAnchor(anchorEntity)
}else{
print("No Surface detected - move around device")
}
}
}
#if DEBUG
struct ContentView_Previews : PreviewProvider {
static var previews: some View {
ContentView()
}
}
#endif
Значение error типа "ARView" не имеет элемента "raycast".
Невозможно вывести контекстную базу по отношению к члену «EstimatedPlane».
Невозможно вывести контекстную базу в отношении элемента "вертикаль".