在sceneKit
的示例项目中,我试图让相机查看我从中心偏移的船对象。但由于某种原因,我无法做到。
我使用以下代码查看该船。但它仍然给出了错误:
找不到init的重载。
我正在使用 swift 代码。
cameraNode.constraints = SCNLookAtConstraint(ship)
请帮助。感谢。
答案 0 :(得分:1)
我在自动填充中看到以下内容,看起来很有希望:
这是ObjC工厂方法+lookAtConstraintWithTarget:
的Swift形式。
通常,有三种简单的方法可以找出ObjC工厂方法(如+[NSFoo fooWithBar:]
)如何转换为Swift初始化程序(如init(bar:)
,您使用语法{{1}调用} }):
答案 1 :(得分:1)
这种设置对我有用,显然你最好不要只是在不存在的情况下展开节点,但它给出了一般的想法。
let targetNode = scene.rootNode.childNodeWithName("nodeName", recursively: false)
let constraint = SCNLookAtConstraint(target: targetNode!)
cameraNode?.constraints = [constraint]
答案 2 :(得分:0)
你必须使用+ lookAtConstraintWithTarget:创建一个look-at约束。
另请注意,constraints
属性需要一个数组。