如何让场景套件中的灯光节点始终位于人的正上方?

时间:2016-06-05 22:53:11

标签: ios swift scenekit light

我正在制作一盏灯,这是我想跟随这个人的聚光灯(也是一个SCNNode)我希望灯光直接在人的上方,这样场景就是黑暗的,只有从人物上方的小聚光灯,这是光的代码 -

let light = SCNNode()
light.light = SCNLight()
light.light?.type = SCNLightTypeSpot
light.scale = SCNVector3Make(1, 1, 1)
light.position = SCNVector3Make(0.076, 3.715, -0.058)
light.eulerAngles = SCNVector3Make(-90, 2.578, -2.238)
let constraint2 = SCNLookAtConstraint(target: person)
constraint2.gimbalLockEnabled = true
light.constraints = [constraint2]
scene.rootNode.addChildNode(light)

因此它在开始时起作用,但是当游戏开始时,灯光似乎越来越远,填满整个场景,这不是我想要的,我希望它始终直接在人的正上方变得更大,充满整个场景,任何人都可以帮忙吗?感谢

这是swift

1 个答案:

答案 0 :(得分:2)

将灯光节点附加到人员节点而不是根节点。如果您的人员节点旋转,则将人员节点放在不旋转的容器节点中,并使您的灯光成为其中的一个子节点。使用容器节点进行翻译(人和光),如果需要旋转人,请使用人物节点(比如说)。