private void UpdateTargetMoveHelp()
{
Vector3 targetToOwnship = self.transform.position - targetTransform.position;
var translationDeviation = new Vector2(
SignedAngleAroundVector(targetToOwnship, targetTransform.forward.normalized, self.transform.forward),
SignedAngleAroundVector(targetToOwnship, targetTransform.forward.normalized, -self.transform.right));
LookForward = Math.Abs(translationDeviation.x) < 90;
float gaugeX = (LookForward ? 1 : -1) * ((translationDeviation.x / 90f)%2);
float gaugeY = (LookForward ? 1 : -1) * ((translationDeviation.y / 90f)%2);
float exponent = .75f;
if (Destination <= 5f)
exponent = 1f;
else
if (Destination < 15f)
{
float toGo = Destination - 5f;
float range = 15f - 5f;
float lerp = toGo / range;
float exponentReduction = 1f - .75f;
exponent = 1 - (exponentReduction) * lerp;
}
TargetMoveHelpX = (scaleExponentially(gaugeX, exponent) + 1) / 2f;
TargetMoveHelpY = (scaleExponentially(gaugeY, exponent) + 1) / 2f;
}