光作为相机的孩子,但Y位置固定在场景?

时间:2014-06-19 22:17:28

标签: three.js

就像标题一样,这可能吗?我怎么能这样做?

我希望spotLight的移动X和Z位置跟随相机。 Y位置仍固定在场景中。

我试过了:

spotLight = new THREE.SpotLight( 0xffffff );
camera.add( spotLight );

....

function animate() {
    spotLight.position.y = scene.position.y + 800;

    request = requestAnimationFrame(animate);
    controls.update();
    render();
}

但是,SpotLight的所有XYZ位置仍然随着相机移动。

1 个答案:

答案 0 :(得分:2)

作为儿童对象是不可能的。子对象的矩阵与其父母的矩阵有关。我想你可以尝试用相机移动聚光灯而不用制作光相机的孩子。

spotLight = new THREE.SpotLight( 0xffffff );

// ....

function animate() {
  spotLight.position = camera.position.clone();
  spotLight.position.y = scene.position.y + 800;

  request = requestAnimationFrame(animate);
  controls.update();
  render();
}