我正在A帧上开发游戏。 在我的游戏中,我需要制作一个拍摄效果,我正在使用枪模并将其放置在光标后面,对点击事件进行编码,以便对象将重新放置在枪的前方并朝光标方向移动。Aframe使用three.js更改对象位置
我使用setAttribute
和requestAnimationFrame: -
renderObj: function(obj){
window.requestAnimationFrame(function() {
renderObj(obj);
});
}
创建子弹在一个特定的方向移动的动画效果。
当函数调用自身再次,我无法检索使用
var objWorldPos = new THREE.Vector3();
objWorldPos.setFromMatrixPosition(obj.object3D.matrixWorld);
通过的setAttribute设置对象的位置,每当我使用的setAttribute我也通过更新子弹标记的属性改变位置obj.attributes.position="x y z";
我知道这不是最好的做法,因为我应该能够恢复位置,所以有没有办法,我可以使用three.js设置元素的位置,并使用THREE.Vector3()'s object3D.matrixWorld
方法检索它...
任何非常感谢您的帮助!
谢谢你的回答,它帮了我很多......如果将来有人看到这个,el.object3D.position对于任何对象都能正常工作,但是如果你正在使用它,它不会给你光标的位置,yYu需要如上所述,使用el.object3D.matrix.elements [12]访问它的位置。12是x,13是y,14是z。 – user287332