我正在尝试将3D场景的值传递给表单字段,因此最终我可以将它们保存在数据库中。我可以使用大多数场景变量做到这一点,但我没有想到它是camera.lookat。以下是一些例子:
document.getElementById('camera_rotation_x').value=camera.rotation.x;
document.getElementById('group_position_x').value=group.position.x;
document.getElementById('spotLight_position_x').value=spotLight.position.x;
document.getElementById('spotLight_rotation_x').value=spotLight.rotation.x;
这些都很好。
但是对于camera.lookat.x,它不起作用:
document.getElementById('camera_lookat_x').value=camera.lookat.x;
document.getElementById('camera_lookat_y').value=camera.lookat.y;
document.getElementById('camera_lookat_z').value=camera.lookat.z;
我做错了什么?
答案 0 :(得分:0)
.lookAt是一个用于设置摄像机旋转的功能。 不带有数据的变量。
但是,如果我使用.lookAt来保持用户控制的视图中的对象,我可以简单地使用这些坐标。
Ex:用户使用输入
在环境中移动THREE.Mesh球camera.lookAt(ball.position)
document.getElementById('camera_lookat_x').value = ball.position.x
...
答案 1 :(得分:0)
我在另一篇文章中回答了这个问题。关键是使用:
controls.target
所以这是传递这些变量的代码:
document.getElementById('controls_target_x').value=controls.target.x;
document.getElementById('controls_target_y').value=controls.target.y;
document.getElementById('controls_target_z').value=controls.target.z;