无法以所需的方式旋转立方体 - 平面和鼠标移动方法
Posted
技术标签:
【中文标题】无法以所需的方式旋转立方体 - 平面和鼠标移动方法【英文标题】:Unable to rotate cube in desired manner - plane and mousemove method 【发布时间】:2021-09-17 03:48:57 【问题描述】:立方体应该保持平坦,但会朝光标方向旋转,只有一种旋转类型(2d - 自上而下)。我现在担心的是,这可能是由于网格对自身的中心?请帮忙!
在这里查看: https://thecoop.group/conquest/ground
代码从这里开始: https://github.com/the-coop/coopwebsite/blob/89ca8909ed3fe28afd79b34c5305b63aabba8638/lib/conquest/ground/engine/setupGroundMovement.js#L35
这是摘录,我尝试了很多不同的方法,可能会保留一些实验代码:
const plane = new Plane(new Vector3(0, 1, 0), 1);
const raycaster = new Raycaster();
const mouse = new Vector2();
const pointOfIntersection = new Vector3();
document.addEventListener('mousemove', ev =>
const camera, me = window.GROUND_LEVEL;
mouse.x = ( ev.clientX / window.innerWidth ) * 2 - 1;
mouse.y = - ( ev.clientY / window.innerHeight ) * 2 + 1;
raycaster.setFromCamera(mouse, camera);
raycaster.ray.intersectPlane(plane, pointOfIntersection);
if (me.mesh)
// Attempt to make mesh "look at" (rotate) to target position.
me.mesh.geometry.lookAt(pointOfIntersection);
);
【问题讨论】:
没有人敢于接受它? 【参考方案1】:pointOfIntersection
有 3 个维度对应立方体的三个轴。
如果您只希望立方体在一个轴上旋转,请尝试在 Object3D#lookAt
中为其他轴指定 0
。
// The cube will rotate on its Y axis when following a point on the X axis
me.mesh.geometry.lookAt(pointOfIntersection.x, 0, 0);
【讨论】:
这似乎不对,如何通过仅传递 x 来旋转到光标 (x, y) 的点? 相机是 .add() 到立方体的!!!!!!光线投射器来自相机?!?!?!!?以上是关于无法以所需的方式旋转立方体 - 平面和鼠标移动方法的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法以所需的顺序运行Specflow场景(C#Selenium)?