cnz*_*zac 6 three.js webvr aframe
我试图将相机位置移动限制为由3D对象/对象子项定义的特定区域.例如,如果我在海洋上有一个走道对象,我只希望我的用户能够在该走道上向前和向后移动摄像机.类似于Unity中的第一人称控制器导航网格但没有AI方面.
我会喜欢基于AFrame的解决方案,但如果有三个js解决方案,我不介意编写自定义组件.
谢谢!
您可以创建一个 THREE.Box3 来获取 3D 对象/对象子对象的边界:
var box = new THREE.Box3();
box.setFromObject(yourObject);
Run Code Online (Sandbox Code Playgroud)
在第一人称控制器内,您可以检查相机是否超出范围:
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;
}
Run Code Online (Sandbox Code Playgroud)
我希望它会有所帮助
| 归档时间: |
|
| 查看次数: |
723 次 |
| 最近记录: |