0
キーを押したときに配列に保存された色をオブジェクトに適用しようとしていますが、何らかの理由でキー入力時に配列の最初の要素しか取得できません。他のやり方があれば教えてください。keypress three.jsでオブジェクトの素材を変更する問題
私はランダムカラー機能を試しましたが、私の要求にはランダムにカラーを適用することは含まれていません。
var onKeyDown = function(event) {
if (event.keyCode == 67) { // when 'c' is pressed
var index=0;
object.traverse(function(child) { if (child instanceof THREE.Mesh) {
if (child.material.name == "Leather") {
var colors = [0xff0000, 0x00ff00, 0x0000ff]; // red, green and blue
if(index == colors.length) index = 0;
child.material.color.setHex(colors[index++]);
child.material.needsUpdate=true;
child.geometry.buffersNeedUpdate = true;
child.geometry.uvsNeedUpdate = true;
}
}});
} };
document.addEventListener('keydown', onKeyDown, true);
おかげで、イムは、アレイによって[ホワイト、シリコン]などのあらかじめ定義された変数を呼び出そうと、私は押しにかの状態でそれらを呼び出すとき、「C」の変更が反映されていません。これに関する考え方は?https://jsfiddle.net/304ub2t7/ –