Three.js第三人称相机

时间:2012-11-15 11:28:02

标签: camera rotation three.js

我正在尝试在three.js中创建第三人称相机视图

我正在使用THREE.FirstPersonControls();在我的相机上。然后将我的“播放器”对象的旋转和位置设置为与具有一些偏移的相机相同。

这似乎不起作用。

我更想知道的是,如果我应该将我的FirstPersonControls添加到相机中,然后在其前面呈现“播放器”。或者将控件添加到播放器然后使相机始终指向播放器的背面?

编辑:

我尝试使用camera.add(播放器)将播放器对象设置为相机的子对象;

但移动相机并不会移动播放器。我想添加一个子元素意味着他们一起移动?

编辑2:

我采用了另一种方法将相机和播放器添加到一个组中,然后将我的第一人称控件添加到该组......现在相机和播放器都会被渲染。但它完全抛弃了第一人控制的工作方式。 (例如俯视左转等)

感谢您的帮助,

詹姆斯

1 个答案:

答案 0 :(得分:4)

首先,控件设计用于控制摄像头,而不是对象。因为默认情况下,对象看起来是“向上”z轴,而摄像机看起来“向下”z轴,当应用于摄像机以外的其他东西时,控件不太可能按预期工作。

其次,控件是示例的一部分,而不是库,因此它们不受官方支持。你可以自由地抨击他们。

实现目标的一种方法是让相机成为玩家的孩子。像这样:

player.add( camera );
camera.position.set( 0, 50, 100 );

您可以在渲染循环中设置:

camera.lookAt( player.position );

然后你想用鼠标或键盘控制播放器。你最好的办法是编写自己的控制器来做到这一点。网上有很多例子。