2017-02-18 3 views
4

カメラの位置の移動を、3Dオブジェクト/オブジェクトの子によって定義された特定の領域に制限しようとしています。たとえば、私が海上に歩道オブジェクトを持っていて、私はその歩道にカメラを前後に動かせるようにしたいと思っていました。 Unityの最初の人のコントローラナビゲーションメッシュに似ていますが、AIの面はありません。カメラの位置の移動を特定の3Dオブジェクトの領域に限定する

私はAFrameベースのソリューションを楽しんでいますが、3つのjsソリューションがある場合はカスタムコンポーネントを書くのに気にしません。

ありがとうございました!

+0

役に立つことを願って、この機能の公平なビットを実装* * PathControlsと呼ばれるこのThree.jsコンポーネントがありました。 http://stackoverflow.com/questions/23443110/how-to-move-camera-along-a-simple-pathを参照してください。そのコンポーネントはもはや利用できません。 –

答えて

3

あなたは、3Dオブジェクトの境界を取得するにはTHREE.Box3を作成することができます/で子供オブジェクト:カメラが範囲外にあるかどうかをチェックすることができ一人称コントローラ内部

var box = new THREE.Box3(); 
box.setFromObject(yourObject); 

if(camera.position.x > box.max.x){ 
    camera.position.x = box.max.x; 
} 

if(camera.position.x < box.min.x){ 
    camera.position.x = box.max.x; 
} 

if(camera.position.z > box.max.z){ 
    camera.position.z = box.max.z; 
} 

if(camera.position.z < box.min.z){ 
    camera.position.z = box.max.z; 
} 

私はそれは昔

+0

これは私がとにかくそれをやり終えた方法です。これは箱のような単純な形では機能しますが、カスタムシェイプを使用するとはるかに難しくなります。 – cnzac

+0

私は複雑な形状の提案をしています。私は一度それを使用しました:高さマップを作成します。制限がある場所を表すB&Wのビットマップ – Tlatis

関連する問題