在多个画布上带有OrbitControls的React + Three.js

时间:2018-08-28 23:31:16

标签: javascript reactjs canvas three.js requestanimationframe

我已经创建了带有多个画布的react +三个沙箱,这些画布显示了简单的四面体模型(demo here)

不幸的是,所有实例似乎都使用Three.OrbitControls的方式相同:无论指向哪个画布鼠标,所有模型都捕获事件。

所需结果是OrbitControls仅更新鼠标指向的画布。

如何更改此设置,以便每个画布中的模型独立运行? (source code

1 个答案:

答案 0 :(得分:1)

只需将每个画布作为构造函数的第二个参数:See second parameter of constructor

这默认为document,但如果传递特定的DOM元素,它将把事件侦听器绑定到该对象。

var controls1 = OrbitControls(cam1, canvas1);
var controls2 = OrbitControls(cam2, canvas2);
var controls3 = OrbitControls(cam3, canvas3);
var controls4 = OrbitControls(cam4, canvas4);