2017-05-26 11 views
2

Aframeを使用してカメラの回転を手動で変更できるため、モバイルでも動作し、ルックコントロールを使用できますか?aframeモバイルでカメラの回転を調整する

私はそうのようなHTML属性を経由して試してみた:

document 
    .querySelector('[camera]') 
    .setAttribute('rotation', { x: 0, y: deg, z: 0 }) 

しかしこれはモバイルルックコントロールコンポーネントにデスクトップ上に正常に動作しますが、以前の値にカメラの回転をリセットしているようです。

ここでデモをセットアップしました。回転を変更すると、&はルックコントロールを無効にします。その後、1秒後にルック・コントロールを再開するタイムアウトを設定しました。 https://embed.plnkr.co/WA1rKucPk0cGffrbfrTh/

いずれかのhtmlボタンを押すとオブジェクトに移動し、ルックコントロールを無効にします。 1秒後にコントロールが再度有効になります。これをモバイルで試してみると、カメラが回転していることがわかります。ルックコントロールが有効になると、1秒後に戻ります。

モバイルでもリセットする必要があるオフセットがありますか?おそらくlookcontrols.yawObjectですか?

答えて

1

エンティティ内にカメラを入れて:

<a-entity rotation="0 0 0"> 
    <a-camera></a-camera> 
</a-entity> 

は、代わりにカメラのエンティティを回転させます。

+0

ちょうど警告 - これは見た目のコントロールのスピン軸を台無しにしたため、実際には私のためには機能しませんでした。例えば、水平に回転することは、奇妙なUXが発生しました。それは特定のケース(固定カメラ、おそらく)の問題を解決する可能性がありますが、一般的に私はそれが最もインタラクティブなアプリケーションが解決するために必要な方法で問題を解決しないと思う。 – davnicwil

1

携帯電話で、それはカメラのエンティティ

機能ルックcontrols.jsでupdateOrientationから回転属性を取得することはありませんときので、あなたは、それが動作するために少しを見て、controls.js変更する必要があります。

if (sceneEl.isMobile) { 
    // On mobile, do camera rotation with touch events and sensors. 
    rotation.x = radToDeg(hmdEuler.x) + radToDeg(pitchObject.rotation.x); 
    rotation.y = radToDeg(hmdEuler.y) + radToDeg(yawObject.rotation.y); 
    rotation.z = radToDeg(hmdEuler.z); 
} 
関連する問題