将位置设置为其他对象的位置在 THREE.js 中不起作用
Setting position to position of other object does not work in THREE.js
我正在尝试Three.js并且我正在尝试将SpotLight放置在相机的位置。我使用以下代码(剥离窗口创建):
$(document).ready(function() {
init();
});
function init() {
var camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 1, 1000 );
camera.position.set(50, 10, 0);
camera.lookAt(new THREE.Vector3(0, 0, 0));
var spotLight = new THREE.SpotLight( 0xffffff );
spotLight.position = camera.position;
console.log(camera.position);
console.log(spotLight.position);
}
我得到的输出是 camera.position 是 50,10,0(如预期的那样),但 spotLight.position 是 0,1,0 - 即使很难,我只是将其设置为指向相同的值?
尝试
spotLight.position.set(camera.position.x, camera.position.y, camera.position.z)
位置是只读的
由于聚光灯和相机是对象(Object3D),因此您可以简单地将聚光灯添加到相机中。灯光将随相机移动、旋转等,无需任何进一步的位置复制。在这种情况下,您必须将光线相对于相机定位:
camera.add(spotLight);
spotLight.position.set(0,0,1);
spotLight.target = camera;
相关文章:
- 通过拖动可以更改三维模型对象在Three.js场景中的位置
- Three.js-查找鼠标最后位置和当前位置之间的所有交点
- 用three.js和CSG设置位置
- Three.js 3D缩放到鼠标位置
- 修改顶点/位置后,three.js中的网格相交
- Three.js网格位置在集上未更改
- Three.js:将三维位置转换为二维屏幕位置
- 如何在three.js中获取顶点的绝对位置
- 如何在 Three.js 中将对象从位置 {x,y} 移动到 {newx,newy}
- threejs - 仅使用 THREE 即可动态计算相机位置.点
- 将位置设置为其他对象的位置在 THREE.js 中不起作用
- THREE.js:使用与位置相同的矢量的2x网格
- 在Three.js中向相机推送Object3D-这很有效,需要设置新的屏幕位置
- 用three.js提取3D点的2D屏幕位置
- three.js通过轨道控制获取相机位置
- Three.js世界坐标与正交摄影机的鼠标位置
- Three.js将球体旋转到任意位置
- 如何将场景中的对象添加到网格中而不改变其在three.js中的位置
- 摄像机在特定位置.three.js
- 当我调用相机位置three.js时,我似乎只能调用起始位置而不能调用当前位置