Three.js 移动三个.Mesh和三个.SceneUtils.createMultiMaterialObject

Three.js 移动三个.Mesh和三个.SceneUtils.createMultiMaterialObject,three.js,Three.js,代码是webgl交互式可拖动多维数据集的一个小修改版本 5个网格使用new THREE.Mesh(红色)创建,5个网格使用new THREE.SceneUtils.createMultiMaterialObject(蓝色)创建 [抱歉,示例已删除] 请尝试拖动它们,红色和蓝色立方体的移动方式不同 红色立方体移动与鼠标(屏幕)有关。如果我向左拖动一个立方体,立方体将向左移动。 蓝色立方体移动与旋转坐标系(或相机旋转)有关,如果我向左拖动一个立方体,立方体可以向上或向下移动,速度比鼠标快 我假设这是

代码是webgl交互式可拖动多维数据集的一个小修改版本

5个网格使用
new THREE.Mesh
(红色)创建,5个网格使用
new THREE.SceneUtils.createMultiMaterialObject
(蓝色)创建

[抱歉,示例已删除]

请尝试拖动它们,红色和蓝色立方体的移动方式不同

红色立方体移动与鼠标(屏幕)有关。如果我向左拖动一个立方体,立方体将向左移动。 蓝色立方体移动与旋转坐标系(或相机旋转)有关,如果我向左拖动一个立方体,立方体可以向上或向下移动,速度比鼠标快

我假设这是因为
createMultiMaterialObject
是一组三个网格,具有相同的几何体和不同的材质。无论如何,我看不出原因。为什么他们的行动方式不同


如何使红色和蓝色立方体在DocumentMouseMove上的行为相同?

您确实需要解释“不同移动”部分。在Firefox和Chrome中,我看到它们像预期的那样旋转、平移和缩放。

您描述的效果是透视投影。如果我明白你想要什么,试试正交摄影机。我试过正交摄影机,不管怎样,当我拖动其中一个立方体时,红色和蓝色立方体的位置会发生不同的变化。对不起我的英语。它是否与对象嵌套相关?当我用THREE.SceneUtils.createMultiMaterialObject创建立方体时,网格被添加到组中,嵌套更深。我刚刚意识到你的问题。你的意思是,当你用鼠标拾取一个立方体并移动它时,你会观察到不同的行为。我只是在背景中点击,我看到的行为是一样的。我必须更好地研究您的代码。感谢gaitat,我刚刚找到了解决方案,这是因为在创建立方体时选择了三个。SceneUtils.createMultiMaterialObject。位置始终为(0,0,0)。更改为SELECTED.parent.position和INTERSECTED.parent.position。