問題 :
メッシュを作成してクローンを作成しました。どちらかを選択しようとすると、両方が選択されます。メッシュの ID は異なりますが、マテリアル ID とジオメトリ ID は同じです。
簡単な jsfiddle の例を作成しました: jsfiddle
クローン方法:
var cloned = object.clone();
また
var cloned = new THREE.Mesh(object.geometry, object.material);
どちらの場合も結果は同じで、1 つをクリックすると両方が選択されます。マテリアル ID を変更しようとしましたが、役に立ちません。
新しいマテリアルを作成すると、すべて問題なく、各オブジェクトを個別に選択できます。
var cloned = new THREE.Mesh(object.geometry, new THREE.MeshLambertMaterial(....));
また
var cloned = new THREE.Mesh(object.geometry, object.material.clone());
私の質問。object.clone().material
と
の材料の違いは何object.material.clone()
ですか?
同じマテリアルで多くのメッシュを作成すると、同じ動作になります。1 つのメッシュ上でマウス ダウンすると、10 個のメッシュすべてが選択されます。例:
var geo = new THREE.CubeGeometry(....)
var material = new THREE.MeshLambertMaterial(....)
for(var i = 0; i < 10; i++){
var mesh = new THREE.Mesh(geo, material);
}