我想限制攝像機位置移動到由3D對象/對象兒童定義的特定區域。例如,如果我在海洋上有人行道物體,並且只希望我的用戶能夠在該人行道上向前和向後移動相機。類似於Unity中的第一人稱控制器導航網格,但沒有AI方面。限制攝像機位置移動到特定3D對象的區域
我很喜歡基於AFrame的解決方案,但如果有三種js解決方案,我不介意編寫自定義組件。
謝謝!通過
我想限制攝像機位置移動到由3D對象/對象兒童定義的特定區域。例如,如果我在海洋上有人行道物體,並且只希望我的用戶能夠在該人行道上向前和向後移動相機。類似於Unity中的第一人稱控制器導航網格,但沒有AI方面。限制攝像機位置移動到特定3D對象的區域
我很喜歡基於AFrame的解決方案,但如果有三種js解決方案,我不介意編寫自定義組件。
謝謝!通過
您可以創建一個THREE.Box3來獲得3D對象的邊界/對象兒童:
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;
}
我希望這將是有益的
在舊時代,有一位叫* PathControls *是實現此功能的公平位three.js所組成。請參閱http://stackoverflow.com/questions/23443110/how-to-move-camera-along-a-simple-path。該組件不再可用。 –