如何让场景套件中的光节点始终位于人的正上方?
How can I get a light node in scene kit to be directly above the person at all times?
我正在创建一个聚光灯,它是我想要跟随人物的灯光(也是 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)
所以它在开始时有效,但是当游戏开始时,光线似乎越来越远并且充满了整个场景这不是我想要的,我希望它一直在人的正上方times 而不是变大并填满整个场景,有人可以帮忙吗?谢谢
这是在swift
将您的轻型节点附加到人员节点而不是根节点。如果您的人物节点旋转,则将人物节点放在不旋转的容器节点中,并使您的灯光成为该节点的子节点。使用容器节点进行平移(人和光),如果需要旋转人(比如鞠躬),请使用人节点。
我正在创建一个聚光灯,它是我想要跟随人物的灯光(也是 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)
所以它在开始时有效,但是当游戏开始时,光线似乎越来越远并且充满了整个场景这不是我想要的,我希望它一直在人的正上方times 而不是变大并填满整个场景,有人可以帮忙吗?谢谢
这是在swift
将您的轻型节点附加到人员节点而不是根节点。如果您的人物节点旋转,则将人物节点放在不旋转的容器节点中,并使您的灯光成为该节点的子节点。使用容器节点进行平移(人和光),如果需要旋转人(比如鞠躬),请使用人节点。