相机's位置不改变时,添加到一个网格

Camera's position not changing when added to a mesh

本文关键字:添加 网格 一个 位置 改变 相机      更新时间:2023-09-26

我想实现一点TPS(摄像机跟随玩家)。我将摄像机添加到一个立方体中(当玩家移动时它代表玩家),并在这个小提琴中显示摄像机和立方体的坐标。相机也在跟随立方体,但你可以看到相机坐标没有改变。没有问题,但是当我想使用拾取时,坐标是错误的,因为它取决于相机。

我只是这样做:

cube.add(Camera);

有人有主意吗?

当您将相机添加到立方体时,您使其成为child对象。子元素的坐标是相对于父元素的local coordinates (缩放和旋转也是如此),所以当父元素(立方体)移动时,它们不会改变。

你想知道的是相机的world coordinates。没有直接的属性,因为Three.js只存储完整的世界矩阵,但它提供了一个很好的辅助函数来从矩阵中提取它:

var cameraPosition = new THREE.Vector3();
cameraPosition.setFromMatrixPosition(Camera.matrixWorld);