问题描述
我有一个可以沿任何方向动态移动的对象。我想以固定的速度沿设定方向拉动它,但前提是它不沿一般拉动方向移动(不一定平行)。换句话说,如果它向我靠近,我就不需要拉它。
我的问题是;有没有一种方法可以检查这个物体是否沿这个通常的拉动方向移动?
解决方法
如果施加“拉”力的方向与当前速度之间的点积大于1,则该速度沿拉力的方向进行。
Vector3 pullDirection;
Vector3 currentVelocity;
bool isMovingInPullDirection = Vector3.Dot(pullDirection,currentVelocity) > 0;