Math 一个轴与另一个轴相交的Unity 3D矢量计算
嘿,我有个问题,我没有在Unity 3D上计算这个 我想操纵顶点。没关系,但我想在鼠标所在的X轴上移动。那不能正常工作 所以我要做的就是从原点向一个方向投射光线。所以光线可以是无限长的 有了这个,我想将网格的垂直移动到鼠标所在的点。我用ray_z=vertice_z(伪)限制了它的范围,但是如果你看那条黑色的线,当我移动或旋转相机时,你会注意到它变长或变短了。因此,vertice与鼠标不在同一位置 所以我没有计算过。如何计算Z(黑线)与X(红线)之间的位置 例如:Math 一个轴与另一个轴相交的Unity 3D矢量计算,math,unity3d,Math,Unity3d,嘿,我有个问题,我没有在Unity 3D上计算这个 我想操纵顶点。没关系,但我想在鼠标所在的X轴上移动。那不能正常工作 所以我要做的就是从原点向一个方向投射光线。所以光线可以是无限长的 有了这个,我想将网格的垂直移动到鼠标所在的点。我用ray_z=vertice_z(伪)限制了它的范围,但是如果你看那条黑色的线,当我移动或旋转相机时,你会注意到它变长或变短了。因此,vertice与鼠标不在同一位置 所以我没有计算过。如何计算Z(黑线)与X(红线)之间的位置 例如: cam(1,0,0)//ca
- cam(1,0,0)//cam&光线的起始位置
- x_轴(10,0,10)//红线切割黑色
- ray_position(15,0,15)//光线的末端(如果从cam看向鼠标,鼠标可能在此处)
法线(x-y平面)并通过原点:
Plane p = new Plane(Vector3.back, Vector3.zero);
然后可以找到摄影机/鼠标光线与该平面相交的点:
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
float distanceAlongRay;
p.Raycast(ray, out distanceAlongRay);
Vector3 mouseOnPlane = ray.GetPoint(distanceAlongRay);
mouseOnPlane
是x-y平面上鼠标射线击中的点。如果您只对x感兴趣,请使用mouseOnPlane.x
Woo谢谢。这正是我想要的。我不知道这架飞机