0

我正在开发一个使用 THREE.RollControls 的程序,当用户离屏幕中心太远时,他们往往会迷路,所以我正在努力创建一个重新定向它们的函数,面向中心场景。

我打算做的只是简单地调用以下内容:

camera.lookAt(scene.position)

但是,这没有影响。从我读到的关于不同堆栈溢出问题的具体内容来看: ThreeJS camera.lookAt() has no effect, 难道我做错了什么?

似乎他们的解决方案是使用控件更改相机位置,而不是更改相机本身。

我不相信滚动控件中有任何“目标”,所以我不知道如何根据 THREE.Vector3() 重置相机正在查看的位置是否有一种简单的方法可以做到这一点,或者将我基本上必须:

到目前为止,我已经“尝试”执行以下操作: - 计算相机位置与场景位置的差异。- 规范化这个向量 - 从相机前方的方向减去它 - 在 controls.forward.add(thisVector) 中使用这个向量

但这根本不是我想要的(可能是因为我不知道我在做什么)

提前感谢您的宝贵时间!

艾萨克

4

1 回答 1

1

对于 RollControls,同样的事情也困扰着我,但我采取了不同的方法来解决问题。由于控件在示例代码中(在 r55 中),因此您可以修改控件,因为它们不是核心库的一部分。您可以在http://www.virtuality.gr/AGG/EaZD-WebGL/js/three.js/examples/js/controls/RollControls.js看到我的修改 我引入了一个名为 mouseLook 的局部变量,因为我无法使用this.mouse 看。我将其初始化为假,并且仅在按下按钮时才将其设为真,即在场景中导航时。这解决了我的问题。

于 2013-02-13T22:51:48.613 回答