Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
67 views
in Technique[技术] by (71.8m points)

javascript - Move items in an array

Currently have sphere meshes in an array and would like to be able to place them in a level. Currently they are already set in a position (skeleton shaped) but I would like to move the whole array and place it in a location instead of individually moving each mesh. Is this possible?

var meshJoints = [];
for (var i = 0 ; i < 25 ; i++)
{
    var geo = new THREE.SphereGeometry(0.02, 18, 18);
    var mat = new THREE.MeshPhongMaterial({color: 0xCCCCCC});
    var mesh = new THREE.Mesh(geo, mat);
    meshJoints.push(mesh);
}
question from:https://stackoverflow.com/questions/65906576/move-items-in-an-array

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Add all of your meshes to a Group, then move the Group.

var meshJoints = new THREE.Group();
for (var i = 0 ; i < 25 ; i++)
{
    var geo = new THREE.SphereGeometry(0.02, 18, 18);
    var mat = new THREE.MeshPhongMaterial({color: 0xCCCCCC});
    var mesh = new THREE.Mesh(geo, mat);
    meshJoints.add(mesh);
}

scene.add(group);
meshJoints.position.set(x, y, z); // setting group position will cascade to all children

A Group acts as a collection, and is its self transformable. Setting the position, rotation, or scale on a Group will cascade that change to all of its children. In this case, setting the Group's position will cause all of your Meshes to move by the same amount of change.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...