图示:
实现:
public class ArrivalTargetSteering : Steering
{
//减速区域半径
public float decelerate = 5;
//到达区域半径
public float arrivalDistance = 1;
public override Vector3 ComputerFinalForce()
{
var distance=(target.transform.position-transform.position).magnitude-arrivalDistance;
var realSpeed = speed;
//减速区内
if (distance < decelerate)
{
realSpeed = distance / decelerate*speed;
realSpeed = realSpeed < 1 ? 1 : realSpeed;
}
//到达区内
if (distance <= 0)
{
return Vector3.zero;
}
exceptForce = (target.transform.position - transform.position).normalized * realSpeed;
return (exceptForce - vehicle.currentForce) * weight;
}
}