
我想把obj推到站台的边缘。推力来自于平台的中心。该平台可以旋转或移动,因此可以改变其旋转和位置。
所以我所需要的是平行于平台的方向向量,而不管obj和平台的位置和旋转。
我怎么才能得到这个方向向量?请帮帮我..。
发布于 2021-12-27 14:53:02
猜测从平面上移动物体位置的高度,以及平面位置的位置是已知的,所以找到一些很酷的伪码。请记住,dotProduct是一个矢量在其他方向上的投影,所以,在平面的法线上推进的物体的高度是:
Vector3 objHeightProyectedInPlaneNormal = Vector3.Dot((planePos - ObjPos), yourPlaneNormal);
绿色箭头显示objHeightProyectedInPlaneNormal

该向量的模从平面原点向上,或者更容易地将该向量的和加到平面位置,应该给出推方向原点的位置:
Vector3 pushDirOrigin = planePos + objHeightProyectedInPlaneNormal
绿色pushDirOrigin圆角

有了你的目标位置和推源,你就有了你的方向:
Vector3 pusDir = (ObjPos - pushOrigin).normalized
https://stackoverflow.com/questions/70496705
复制相似问题