Three.js 第三人称相机

jam*_*mes 1 camera rotation three.js

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

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

这似乎不起作用。

我更想知道的是我是否应该将我的 FirstPersonControls 添加到相机,然后在它前面渲染“玩家”。或者将控件添加到播放器然后使相机始终指向播放器的背面?

编辑:

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

但是移动相机并不会移动玩家。我认为添加子元素意味着它们一起移动?

编辑2:

我采取了另一种方法,将摄像机和玩家都添加到一个组中,然后将我的第一人称控件添加到该组中……现在摄像机和玩家都得到了渲染。但它完全脱离了第一人称控制的工作方式。(例如向下看向左等)

谢谢你的帮助,

詹姆士

Wes*_*ley 6

首先,控件旨在控制相机,而不是对象。由于默认情况下,对象在 z 轴上“向上”看,而相机在 z 轴“下”看,因此当应用于相机以外的其他东西时,控件不太可能按预期工作。

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

实现您想要的一种方法是使相机成为您的播放器的子项。像这样的东西:

player.add( camera );
camera.position.set( 0, 50, 100 );
Run Code Online (Sandbox Code Playgroud)

您可能需要在渲染循环中设置:

camera.lookAt( player.position );
Run Code Online (Sandbox Code Playgroud)

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