gpt4 book ai didi

three.js - 将相机位置移动限制到特定 3D 对象的区域

转载 作者:行者123 更新时间:2023-12-04 15:31:05 27 4
gpt4 key购买 nike

我试图将相机位置移动限制在由 3D 对象/对象子项定义的特定区域。例如,如果我在海洋上有一个走道对象,我只希望我的用户能够在该走道上前后移动相机。类似于 Unity 中的第一人称 Controller 导航网格,但没有 AI 方面。

我会喜欢基于 AFrame 的解决方案,但如果有三个 js 解决方案,我不介意编写自定义组件。

谢谢!

最佳答案

您可以通过以下方式创建一个 THREE.Box3 来获取 3D 对象/对象子对象的边界:

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

在第一人称 Controller 中,您可以检查相机是否越界:
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;
}

我希望它会有所帮助

关于three.js - 将相机位置移动限制到特定 3D 对象的区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42321008/

27 4 0
文章推荐: docker - Docker 容器中的配置管理
文章推荐: haskell - 构造延续类型?
文章推荐: amazon-web-services - 给定 AWS 访问/ key 对,我如何检索其 IAM 权限?
文章推荐: firebase - 如何使用 RxJava 2 改进从 Firebase 数据库读取 Flowable 数据?