自动行为操控Steering(四)—到达(单体操控)

图示:


实现:

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;
        }

    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值