#swift #xcode #augmented-reality #arkit #realitykit
#swift #дополненная реальность #arkit #realitykit
Вопрос:
Поэтому я хочу, чтобы пользователь мог открывать приложение и осматриваться с помощью камеры телефона и видеть случайные объекты дополненной реальности.
Как я могу случайным образом размещать их?
Извините за вопрос новичка. Я много видел о создании базовой плоскости, но я хочу, чтобы это можно было использовать во многих разных местах без предварительной каталогизации.
Комментарии:
1. Если ваш iPad не является LiDAR, вы хотите сначала обнаружить плоскость. Тогда просто raycastQuery ( hit-test , старый способ, устарел) случайное место для размещения объектов.
Ответ №1:
если вы хотите автоматическое размещение моделей в RealityKit, но без помощи raycasting и ARWorldMap, вам, по крайней мере, нужно активировать обнаружение плоскости. Вставьте этот код в Swift Playgrounds на iPad, чтобы протестировать его.
import UIKit
import RealityKit
import PlaygroundSupport
class ViewController: UIViewController {
let arView = ARView(frame: .zero)
override func viewDidLoad() {
super.viewDidLoad()
self.view = self.arView
self.arView.cameraMode = .ar
self.feed()
}
fileprivate func feed() {
let anchorA = AnchorEntity(plane: .horizontal)
let anchorB = AnchorEntity(plane: .horizontal)
let anchorC = AnchorEntity(plane: .horizontal)
let model = ModelEntity(mesh: .generateSphere(radius: 0.025))
anchorA.addChild(model)
arView.scene.anchors.append(anchorA)
DispatchQueue.main.asyncAfter(deadline: .now() 3) {
anchorB.addChild(model.clone(recursive: false))
self.arView.scene.anchors.append(anchorB)
}
DispatchQueue.main.asyncAfter(deadline: .now() 4) {
anchorC.addChild(model.clone(recursive: false))
self.arView.scene.anchors.append(anchorC)
}
}
}
PlaygroundPage.current.needsIndefiniteExecution = true
PlaygroundPage.current.liveView = ViewController()