Camera 三人照相机

Camera 三人照相机,camera,rotation,three.js,Camera,Rotation,Three.js,我正在尝试在three.js中创建第三人称摄影机视图 我正在使用三个。firstPersonControl();在我的相机上。然后将我的“玩家”对象的旋转和位置设置为与相机相同,并带有一些偏移 这似乎不起作用 我更想知道的是,我是否应该将我的FirstPersonControl添加到相机中,然后渲染它前面的“播放器”。还是将控件添加到播放器中,然后使相机始终指向播放器的背面 编辑: 我尝试使用camera.add(player)将播放器对象设置为摄影机的子对象 但移动摄像机并不意味着移动播放器。

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

我正在使用三个。firstPersonControl();在我的相机上。然后将我的“玩家”对象的旋转和位置设置为与相机相同,并带有一些偏移

这似乎不起作用

我更想知道的是,我是否应该将我的FirstPersonControl添加到相机中,然后渲染它前面的“播放器”。还是将控件添加到播放器中,然后使相机始终指向播放器的背面

编辑:

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

但移动摄像机并不意味着移动播放器。我想添加一个子元素意味着它们一起移动

编辑2:

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

谢谢你的帮助


詹姆斯首先,这些控件被设计用来控制摄像机,而不是物体。由于默认情况下,对象在z轴上看“向上”,而摄影机在z轴上看“向下”,因此当应用于摄影机以外的对象时,控件不太可能按预期工作

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

实现你想要的一个方法是让相机成为你玩家的孩子。大概是这样的:

player.add( camera );
camera.position.set( 0, 50, 100 );
在渲染循环中,可能需要设置:

camera.lookAt( player.position );

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

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

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

实现你想要的一个方法是让相机成为你玩家的孩子。大概是这样的:

player.add( camera );
camera.position.set( 0, 50, 100 );
在渲染循环中,可能需要设置:

camera.lookAt( player.position );

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

谢谢你的帮助,有没有理由让我在摄像机上添加一个播放器,它就不能工作了?我想做的是将玩家设置为摄影机的孩子。那么,如果我将播放器偏移到摄像机前面,这难道不意味着当我旋转摄像机时,播放器不会相对于摄像机移动吗?虽然我需要一些方法将旋转点设置在相机上?您的问题的答案是“是”,但如果您仍然有问题,请发布一个新问题,并附上一个实例,或者至少是一个代码列表。感谢您的帮助,如果我将播放机添加到相机上,是否有原因无法工作?我想做的是将玩家设置为摄影机的孩子。那么,如果我将播放器偏移到摄像机前面,这难道不意味着当我旋转摄像机时,播放器不会相对于摄像机移动吗?虽然我需要一些方法将旋转点设置在相机上?您的问题的答案是“是”,但如果您仍然有问题,请发布一个新问题以及一个实例,或者至少是一个代码列表。