小编Bea*_*ool的帖子

将相机保持在地面上方(使用 OrbitControls.js)

所以我有一个非常简单的情况,地平面基本上是 y=0 的位置,并且我想始终将相机保持在地面上方。我还想要感觉直观(并且与触摸兼容)的良好控件,并且我发现 OrbitControls.js 似乎最适合此目的,还因为我可以通过将 maxPolarAngle 设置小于或等于 Math.js 的值来轻松限制极角。 PI/2(四分之一圈)。

尽管如此,即使这样做,用户也可以在地面以下平移,除非完全禁用平移(我不想这样做)。手动限制以使 y 永远不会变为负数感觉很奇怪,但我认为只需忽略 y 轴上的任何更改,例如将第 165 行(panUp 函数)更改为以下内容

panOffset.set( te[ 4 ], 0, te[ 6 ] );
panOffset.normalize();
Run Code Online (Sandbox Code Playgroud)

导致了一个快速而肮脏的解决方案,满足了我的要求。

但现在用户只能通过缩放来改变相机高度。

你能想到更好的解决方案吗?也许这个帖子可以作为官方解决方案的深思熟虑,我确信我不会是唯一受益于这种解决方案的人。

/编辑:我一开始没有标准化偏移向量,这导致了另一个问题,现在已更改。

controls camera three.js

2
推荐指数
1
解决办法
2303
查看次数

标签 统计

camera ×1

controls ×1

three.js ×1