私は非常に基本的なAフレームのシーンで遊んでいます。 実行時にカメラの位置を取得するための情報を探しています。 Componentとthree.jsコードを使用する必要がありますか?ランタイム時のカメラの位置
どうすればいいですか?
私は非常に基本的なAフレームのシーンで遊んでいます。 実行時にカメラの位置を取得するための情報を探しています。 Componentとthree.jsコードを使用する必要がありますか?ランタイム時のカメラの位置
どうすればいいですか?
まず、カメラエンティティ(https://aframe.io/docs/core/entity.html#Retrieving-an-Entity)をつかんでください。カメラエンティティは、camera
コンポーネントをHTML属性として添付します。
document.querySelector('[camera]')
又は
document.querySelector('a-scene').camera.el
そして位置をつかむためにgetAttribute
を使用します。これは{X、Y、Z}オブジェクトを返します。
document.querySelector('[camera]').getAttribute('position')
毎回が通知されるようにカメラがその位置を更新し、我々はcomponentchanged
イベント(https://aframe.io/docs/core/entity.html#Listening-for-Component-Changes)を使用することができます。
document.querySelector('[camera]').addEventListener('componentchanged', function (evt) {
if (evt.detail.name === 'position') {
console.log('Camera position went from', evt.detail.oldData, 'to', evt.detail.newData);
}
});
私は最終的にこのソリューション採用している:
<script>
AFRAME.registerComponent('acceleration', {
tick: function() {
var altitude = (this.el.getAttribute('position').z);
}
})
</script>
<a-scene>
<a-entity position="0 0 150">
<a-entity id="myCamera" camera acceleration look-controls keyboard-controls></a-entity>
</a-entity>
</a-scene>
を
私の最後の問題は、カメラの絶対座標は得られませんが、カメラ位置を初期化する。
私はRTFMを持っています。しかし、私はどこから始めるのか分かりません。私が「実行時に」と言うときは、カメラが動くたびに意味します。 – pizaninja
私はあなたがこれまでに試した*コード*を意味しましたか? –
例を挙げることはできますか? codepenへのリンクは、http://codepen.io/team/mozvr/ –