2016-06-05 12 views
1

Ich erstelle ein Licht, das ein Scheinwerfer ist, dem ich die Person folgen möchte (auch eine SCNNode) Ich möchte das Licht direkt über der Person sein, so dass die Szene dunkel ist und nur vom kleinen Punktlicht über dem sichtbar ist Person, das ist der Code für das Licht ist -Wie kann ich einen hellen Knoten im Szenen-Kit dazu bringen, sich immer direkt über der Person zu befinden?

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) 

so funktioniert es am Anfang, aber wenn das Spiel beginnt, scheint das Licht weiter weg zu bekommen und die ganze Szene Füllung, die nicht das, was ich will, Ich möchte, dass es ständig direkt über der Person ist, anstatt größer zu werden und die ganze Szene zu füllen, kann jemand helfen? Dank

Dies ist in swift

+0

Geht es nicht nur darum, den Lichtknoten in Übereinstimmung mit der Bewegung Ihrer Personenknoten zu bewegen? –

+0

Hängen Sie Ihren Lichtknoten an den Knoten der Person anstelle des Stammknotens an. Wenn sich Ihr Personenknoten dreht, legen Sie den Personenknoten in einen Containerknoten, der sich nicht dreht, und machen Sie Ihr Licht zu einem Kind davon. Verwenden Sie den Container-Knoten für die Übersetzung (sowohl für die Person als auch für das Licht), verwenden Sie den Knoten für die Person, wenn Sie die Person drehen müssen (indem Sie sich verbeugen, sagen Sie). – bpedit

+0

wow, ich bin dumm, ja, das hat funktioniert. Ich musste nur tun - person.addChildNode (Licht) –

Antwort

1

Bringen Sie Ihre Lichtknoten an den Knoten Person anstelle des Root-Knotens. Wenn sich Ihr Personenknoten dreht, legen Sie den Personenknoten in einen Containerknoten, der sich nicht dreht, und machen Sie Ihr Licht zu einem Kind davon. Verwenden Sie den Container-Knoten für die Übersetzung (sowohl für die Person als auch für das Licht), verwenden Sie den Knoten für die Person, wenn Sie die Person drehen müssen (indem Sie sich verbeugen, sagen Sie).