【问题标题】:Camera's position not changing when added to a mesh添加到网格时,相机的位置不会改变
【发布时间】:2014-10-14 00:04:30
【问题描述】:

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

我就是这么做的:

cube.add(Camera);

有人有想法吗?

【问题讨论】:

    标签: javascript camera three.js


    【解决方案1】:

    当您将相机添加到立方体时,您将其设为child 对象。子对象的坐标是local coordinates 相对于其父对象(比例和旋转也是如此),因此当父对象(立方体)移动时它们不会改变。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多