【发布时间】:2014-10-14 00:04:30
【问题描述】:
我想实现一点 TPS(相机跟随玩家)。我将相机添加到一个立方体(代表玩家移动时的位置),并在this fiddle 中显示相机和立方体的坐标。相机也跟随立方体,但您可以看到相机坐标没有改变。没有问题,但是当我想使用拾取时,坐标是错误的,因为它取决于相机。
我就是这么做的:
cube.add(Camera);
有人有想法吗?
【问题讨论】:
标签: javascript camera three.js
我想实现一点 TPS(相机跟随玩家)。我将相机添加到一个立方体(代表玩家移动时的位置),并在this fiddle 中显示相机和立方体的坐标。相机也跟随立方体,但您可以看到相机坐标没有改变。没有问题,但是当我想使用拾取时,坐标是错误的,因为它取决于相机。
我就是这么做的:
cube.add(Camera);
有人有想法吗?
【问题讨论】:
标签: javascript camera three.js
当您将相机添加到立方体时,您将其设为child 对象。子对象的坐标是local coordinates 相对于其父对象(比例和旋转也是如此),因此当父对象(立方体)移动时它们不会改变。
你想知道的是相机的world coordinates。这些没有直接属性,因为 Three.js 只存储完整的世界矩阵,但它确实提供了一个很好的辅助函数来从该矩阵中提取它:
var cameraPosition = new THREE.Vector3();
cameraPosition.setFromMatrixPosition(Camera.matrixWorld);
【讨论】: