jam*_*mes 1 camera rotation three.js
我正在尝试在three.js中创建第三人称相机视图
我正在使用 THREE.FirstPersonControls(); 在我的相机上。然后将我的“播放器”对象的旋转和位置设置为与具有一些偏移的相机相同。
这似乎不起作用。
我更想知道的是我是否应该将我的 FirstPersonControls 添加到相机,然后在它前面渲染“玩家”。或者将控件添加到播放器然后使相机始终指向播放器的背面?
编辑:
我尝试使用 camera.add(player); 将播放器对象设置为相机的子对象。
但是移动相机并不会移动玩家。我认为添加子元素意味着它们一起移动?
编辑2:
我采取了另一种方法,将摄像机和玩家都添加到一个组中,然后将我的第一人称控件添加到该组中……现在摄像机和玩家都得到了渲染。但它完全脱离了第一人称控制的工作方式。(例如向下看向左等)
谢谢你的帮助,
詹姆士
首先,控件旨在控制相机,而不是对象。由于默认情况下,对象在 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)
然后你想用鼠标或键盘控制播放器。最好的办法是编写自己的控制器来做到这一点。网上有很多例子。