在場景中,我添加了幾個網格物體(立方體)。每個立方體都有EdgeHelper。立方體移動並旋轉,Edgehelpers隨着它們移動和旋轉。Three.js:如何匹配EdgesHelper到網格
我想改變一個EdgeHelper的顏色,當它與關聯的立方體網格被選中時。 (選擇方法並不重要)。
因此,給定一個特定的立方體網格,我如何找到關聯的EdgeHelper對象?
在場景中,我添加了幾個網格物體(立方體)。每個立方體都有EdgeHelper。立方體移動並旋轉,Edgehelpers隨着它們移動和旋轉。Three.js:如何匹配EdgesHelper到網格
我想改變一個EdgeHelper的顏色,當它與關聯的立方體網格被選中時。 (選擇方法並不重要)。
因此,給定一個特定的立方體網格,我如何找到關聯的EdgeHelper對象?
當您創建一個給定的mesh
的edgesHelper
,所有你需要做的是一個新的屬性添加到網格:
var mesh = new THREE.Mesh(...);
var edgesHelper = new THREE.EdgesHelper(mesh);
mesh.edgesHelper = edgesHelper;
現在你可以改變助手顏色像這樣:
mesh.edgesHelper.material.color.set(0xff0000);
three.js r.76
當您創建網格和EdgeHelpers你可以將它們分配相同的.name
屬性:
mesh0.name = 0;
edgeHelper0.name = 0;
mesh1.name = 1;
edgeHelper1.name = 1;
...and so on
**if you wrap this in a loop even better
所以在選擇網可以通過讀取其.name
屬性,並選擇相應的edgeHelper。
謝謝。我可以看到這將如何工作。但是它需要對所有edgeHelpers進行掃描/檢查,以找到與.name值匹配的選定網格的.name值。所以我更喜歡WestLangley將edgeHelper指定爲網格屬性的方法。 – steveOw
很好用!非常感謝。但是我想知道THREE.js如何(不使用這個屬性技巧)保持任何EdgesHelper的位置和旋轉與其相應源「mesh」的位置和旋轉保持同步? – steveOw
啊哈,找到了另一個答案......很多幫手都有這行代碼「this.matrix = object.matrixWorld;」即edgeHelper使用源網格物體的矩陣。 – steveOw