Three.js-在缩放时使对象保持静态

时间:2019-07-08 14:53:42

标签: javascript three.js

我在应用程序中使用Three.js进行2D演示,因此我使用MapControls设置了正交摄影机。有一些添加到场景中的对象可以进行二维平移和放大/缩小。除了它们,我还有一个箭头对象,该对象必须是静态的,即不包含在平移和缩放中。该箭头将具有特殊的形式和动画旋转效果,这就是为什么我不使用CSS绘制它的原因。

我尝试了this SO post中的指南,并成功地仅限制了平移。

scene.add(camera);
...
camera.add(directionArrow);

但是当使用鼠标滚轮放大/缩小时,箭头也会放大/缩小。

这是jsfiddle,再现程度最低。

缩放时,三角形(箭头)应该保持静止,就像平移时一样。

1 个答案:

答案 0 :(得分:1)

使用GUI层和渲染层。

如果在GUI层中绘制指针,则可以根据需要更改渲染层,而不会影响GUI层。

通常Three.js GUI层是用HTML完成的。

一旦有了这个,您将需要获取对象的坐标并更新HTML。这是该过程中最复杂的部分,因此本文是有关一些示例的文章。

https://threejsfundamentals.org/threejs/lessons/threejs-align-html-elements-to-3d.html