私はterrain mountain rangeを持っており、カメラフライビューは高さマップの近くに配置されています。カメラは、y軸の動きを許さない標準のキーボードコントロールを使用して制御されます。それはy軸に設定されたままです。地形は均等なレベルではなく、ランダムにレンダリングされるからです。どのように地形高さマップにカメラをつけることができますか?ここにはexampleがあります。以下は、地形をスケールアップするためにレイキャスターを追加しようとする試みです。すべてのコードはプロジェクトのアニメーション機能に含まれています。カメラが地形を拡大しようとしたときに気づいた。あまりにも急な場合、それはまっすぐ進むでしょう。また、それは地形に追従しません。カメラは最高位のままです。このスニペットでThree.jsカメラを地形の高さマップに従う方法を教えてください。
var raycaster = new THREE.Raycaster(camera.position.clone(), new THREE.Vector3(0, -1, 0));
raycaster.ray.origin.copy(camera.position);
var intersections = raycaster.intersectObjects(terrain);
if (intersections.length > 0){
var distance = intersections[0].distance;
if(distance > 0 && distance < 10){
camera.position.y= intersections[0].point.y + 20;
}
}