Làm thế nào để có được vị trí toàn cục của một Object3D bên trong một Object3D khác?Làm thế nào để có được vị trí toàn cầu/thế giới của một đối tượng con?
thiết lập:
var parent = new THREE.Object3D();
parent.position.set(100, 100, 100);
var child = new THREE.Object3D();
child.position.set(100, 100, 100);
parent.add(child);
scene.add(parent);
ghi chú:
Tôi nghĩ rằng đây sẽ là cách để làm điều đó:
console.log(child.localToWorld(parent.position));
... nhưng nó mang lại cho tôi (100, 100, 100), không phải (200, 200, 200).
Cảm ơn bạn WestLangley, theo lời khuyên của bạn tôi đã làm điều này: ** console.log (parent.position.getPositionFromMatrix (child.matrixWorld)) ** Nhưng, kể từ khi mã sống là actruly bên trong một vòng lặp mà di chuyển những thứ xung quanh , điều này dẫn đến một số hiện vật kỳ lạ, nơi vận tốc của đối tượng cha mẹ sẽ tăng đáng kể (điều này chỉ console.logging vị trí con) ! Vì tôi không hiểu chính xác những gì đang xảy ra (sẽ đọc lên trên nó tho), tôi đã kết thúc: ** console.log (parent.position.clone(). GetPositionFromMatrix (child.matrixWorld)) ** * Cảm ơn một lần nữa. * – TunnelVision
Không, không! Tạo một vector riêng biệt bên ngoài vòng lặp render và gán nó giá trị vị trí bên trong vòng lặp render. – WestLangley
ah, bây giờ tôi nhận được nó :) – TunnelVision