private void UpdateIsMoveToTarget(Vector3 velocity)
{
// dockingLamp-
var checkedDevByZero = false;
try
{
SecondsToDock = Destination / velocity.magnitude;
checkedDevByZero = true;
}
catch (DivideByZeroException)
{
isMoveToTarget = false;
}
if (checkedDevByZero)
{
float timeX;
float timeY;
if (SpeedX == 0 && Mathf.Abs(DX) < .5f)
{
timeX = SecondsToDock;
}
else
{
timeX = (Mathf.Abs(DX) < .5f) ? SecondsToDock : -DX / SpeedX;
}
if (SpeedY == 0 && Mathf.Abs(DY) < .5f)
timeY = SecondsToDock;
else
timeY = (Mathf.Abs(DY) < .5f) ? SecondsToDock : -DY / SpeedY;
isMoveToTarget = Mathf.Abs(SecondsToDock - timeX) < 1 &&
Mathf.Abs(SecondsToDock - timeY) < 1 &&
DZ * SpeedZ < 0;
}
}