私は A-Frame を使用しており、オブジェクトをカメラと一緒に動かしたいと考えています。これを行うために、カメラの位置に基づいてオブジェクトの位置を更新するコンポーネントをまとめました。
AFRAME.registerComponent('follow', {
schema: {
distance: {type: 'vec3'},
target: {type: 'selector'}
},
tick: function() {
const targetItem = this.data.target;
const relativePosition = this.data.distance
var tempPos = targetItem.getAttribute("position").split(" ").map(Number);
targetPos = new THREE.Vector3(relativePosition.x + tempPos[0], relativePosition.y + tempPos[1], relativePosition.z + tempPos[2]);
this.el.setAttribute('position', targetPos)
}
});
これはinit
代わりに使用するtick
と正常に機能しますが、init 関数であるため、シーンの開始時に一度だけ更新されます。なんらかの理由で、tick
すべてを使用すると壊れます。私はそれを間違って使用していますか?その位置を継続的に更新するには、何か違うことをする必要がありますか?
前もって感謝します!
編集:目標は、何かをフォローすることですが、ビューに固定することではありません。時のオカリナのナビだと思います。