Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 三.js聚光灯方向(方向)问题_Javascript_3d_Three.js - Fatal编程技术网

Javascript 三.js聚光灯方向(方向)问题

Javascript 三.js聚光灯方向(方向)问题,javascript,3d,three.js,Javascript,3d,Three.js,问题是 实际上,我试图实现的是在一些地方,在一个基本的three.js示例中放置一些聚光灯 以下是我尝试设置聚光灯目标位置的方法: var light = new THREE.SpotLight(0xFFFFFF); light.position.set(0,130,0); light.target.position.set(200,-130,400); scene.add(light); 聚光灯(灯光)保持照亮点(0,0,0),即使在我console.log目标.position.(x,y,

问题是

实际上,我试图实现的是在一些地方,在一个基本的three.js示例中放置一些聚光灯

以下是我尝试设置聚光灯目标位置的方法:

var light = new THREE.SpotLight(0xFFFFFF);
light.position.set(0,130,0);
light.target.position.set(200,-130,400);
scene.add(light);
聚光灯(灯光)保持照亮点(0,0,0),即使在我console.log目标.position.(x,y,z)时,它给了我正确的值

下面是我用我的完整示例所做的快速调整


更改后(如设置位置),您必须更新您的
灯。目标灯

light.target.updateMatrixWorld()

或者只需将您的
灯光添加到场景中。目标

scene.add(light.target)

3.js r.71


进一步阅读:

谢谢,现在我明白了!但是你能告诉我为什么“灯光、目标、位置、设置(x,y,z);”不起作用吗?它只是改变了光目标的位置,对吗?它应该可以完成这项工作……是什么让你觉得
light.target.position.set(x,y,z)不工作?你看到更新的小提琴了吗?是的,它正在工作,我的意思是,如果没有“将目标添加到场景中”,它就无法工作。但是,灯光有一个默认目标,对吗?为什么只需要在场景中添加一些内容就可以了。。。(idk,如果我清楚或不清楚…)因为
spotlight.target
是灯光的属性,但它不是场景图形的一部分。因此,未更新
target.matrix
target.matrixWorld
。我在答案中添加了更新。请参阅。