Я создаю свет, который является прожектором, который я хочу следить за человеком (также 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
Разве это не вопрос перемещения легкого узла в соответствии с движением вашего персонального узла? –
Прикрепите свой световой узел к узлу пользователя вместо корневого узла. Если ваш персональный узел вращается, тогда помещайте узел пользователя в контейнерный узел, который не вращается, а также заставляйте ваш свет быть ребенком этого. Используйте узел контейнера для перевода (как для человека, так и для света), используйте персональный узел, если вам нужно повернуть человека (принимая лук, скажем). – bpedit
wow Я глуп, да, что сработало спасибо. Мне просто нужно было сделать - person.addChildNode (light) –