我正试图通过相机显示3D无人机对象。我已经创建了ARSceneView并正确配置它并创建了一个场景。我也正确地将对象传递给那个sceneView但是当我运行我的应用程序时,对象没有显示任何位置,我也设置了它的位置,但仍然没有得到任何地方的对象。我怎样才能看到我的对象?我设置场景和配置的代码就是这个,
func setupScene(){
let scene = SCNScene()
arView.scene = scene
}
func setupConfiguration(){
let configure = ARWorldTrackingConfiguration()
arView.session.run(configure)
}
func addDrone() {
drone.loadModel()
arView.scene.rootNode.addChildNode(drone)
}
这是我的无人机类,用于将对象作为子节点,
class Drone: SCNNode {
func loadModel() {
guard let virtualObjectScene = SCNScene(named: "Drone.scn") else { return }
let wrapperNode = SCNNode()
for child in virtualObjectScene.rootNode.childNodes {
wrapperNode.addChildNode(child)
}
addChildNode(wrapperNode)
}
}
我怎样才能看到它?
答案 0 :(得分:0)
查看代码,看起来<tr *ngFor="let spro of selectedProd;let i = index;">
<td data-title="Product Name">{{spro.product_description}}</td>
<td data-title="Unit Price" class="numeric">
<i class="fa fa-inr"></i>2000</td>
<td data-title="Qty" class="numeric">
<input type="text" [(ngModel)]="selectedProd[i].qty" name="qty" value="1">
</td>
<td data-title="Total Price" class="numeric">
<i class="fa fa-inr"></i>{{selectedProd[i].qty*2000}}</td>
</tr>
永远不会被初始化。
如果您的SCNScene位于Drone Class
文件夹中,您还需要将其包含在路径中。
因此,假设您有一个名为:ARAssets.scnassets
的文件夹您的无人机类应如下所示:
.scnassets
要实际加载它,你应该在viewController中执行类似的操作:
class Drone: SCNNode{
override init() {
super.init()
guard let virtualObjectScene = SCNScene(named: "ARAssets.scnassets/Drone.scn") else { return }
let wrapperNode = SCNNode()
for child in virtualObjectScene.rootNode.childNodes {
wrapperNode.addChildNode(child)
}
self.addChildNode(wrapperNode)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
您可能还需要调整无人机节点的 func addDrone() {
let droneNode = Drone()
droneNode.position = SCNVector3(0, 0, -1.5)
self.augmentedRealityView.scene.rootNode.addChildNode(droneNode)
}
属性,例如
scale