在SceneKit中创建一个类非常重要。但是,我无法让它发挥作用。
这是我的班级代码
import UIKit
import SceneKit
class Ship: SCNNode {
override init(){
super.init()
let box = SCNBox(width: 0.1, height: 0.1, length: 0.1, chamferRadius: 0)
let node = SCNNode(geometry: box)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
这是我在ViewController中的代码(我正在使用ARKit)
let tempShip = Ship()
tempShip.position = SCNVector3(0.1,0.1,0.1)
sceneView.scene.rootNode.addChildNode(tempShip)
我想我错过了一些基本的东西。
答案 0 :(得分:1)
您可能尚未创建SCNScene
并将其添加到您的视图中。至少在您发布的代码中没有任何迹象。你需要像
sceneView.scene = SCNScene()
或使用SCNScene
init
方法之一创建它。
然后您将拥有一个可以挂起节点的场景。别忘了添加灯光和相机。
另外:不要继承SCNNode
。请改用扩展程序。如果您继承SCNNode
或SCNScene
,则无法使用Xcode场景编辑器。请参阅SceneKit editor set custom class for node。
答案 1 :(得分:1)
您应该看到警告您的节点变量未被使用,您需要在节点上设置几何体。将您的init方法更改为:
SELECT sales_price, fxtoEUR, (sales_price / fxtoEUR) AS priceEUR FROM scrapes;
答案 2 :(得分:0)
SCNView的场景属性是可选的。将最后一行更改为:
type