【发布时间】:2020-12-11 18:17:01
【问题描述】:
我正在创建一个应用程序,其中一个人(现在我使用的是圆锥形)站在某个表面上(现在我使用的是纵向放置的圆柱体)并且我希望他们的脚能够定向朝向某个点(现在它是圆柱体的中心)。
(edit:我刚刚意识到我在这张照片中的 Z 轴指向错误的方向;它应该指向 相机,但是问题保持不变。)
这是一个类似于我想要完成的代码版本。 https://codepen.io/liamcorbett/pen/YMWayJ(使用方向键移动圆锥)
//...
person = CreatePerson();
person.mesh.up = new THREE.Vector3(0, 0, 1);
//
// ...
//
function updateObj(obj, aboutObj=false){
let mesh = obj.mesh;
if (aboutObj) {
mesh.lookAt(
aboutObj.mesh.position.x,
aboutObj.mesh.position.y,
mesh.position.z)
};
}
//
// ...
//
function animate() {
// ...
updateObj(person);
// ...
}
上面的代码给了我一些类似于我正在寻找的东西,但问题是 lookAt() 似乎总是将本地 Positive Z 轴 指向某个方向,而我' d 更喜欢它指向本地 负 Y 轴。
我宁愿不改变模型本身的 x、y、z 轴,因为当我将其他逻辑应用于 person 对象时,我觉得处理起来会很痛苦。
有没有办法改变lookAt() 使用哪个轴?还是我必须推出自己的lookAt() 函数?谢谢~
【问题讨论】:
标签: javascript three.js