Example #1
0
    public override Vector3 Calculate(Steering instance, SteeringSettings settings)
    {
        pr     = settings.prPursuit;
        weight = settings.weightPursuit;

        if (Random.Range(0.0f, 1.0f) > pr)
        {
            if (instance.TargetTrans != null)
            {
                return(Calculate(instance, instance.GetUsefulTarget(instance.TargetTrans.position)) * weight / pr);
            }
            else
            {
                return(Calculate(instance, instance.GetUsefulTarget(instance.TargetPos)) * weight / pr);
            }
        }

        return(Vector3.zero);
    }
Example #2
0
    public override Vector3 Calculate(Steering instance, SteeringSettings settings)
    {
        pr           = settings.prArrive;
        weight       = settings.weightArrive;
        deceleration = settings.deceleration;

        if (Random.Range(0.0f, 1.0f) > pr)
        {
            if (instance.TargetTrans != null)
            {
                return(Calculate(instance, instance.GetUsefulTarget(instance.TargetTrans.position), deceleration, decelerationRate) * weight / pr);
            }
            else
            {
                return(Calculate(instance, instance.GetUsefulTarget(instance.TargetPos), deceleration, decelerationRate) * weight / pr);
            }
        }

        return(Vector3.zero);
    }
Example #3
0
    public static Vector3 Calculate(Steering instance)
    {
        Vector3 target = new Vector3();

        target += new Vector3(Random.Range(-1f, 1f) * jitter,
                              Random.Range(-1f, 1f) * jitter,
                              Random.Range(-1f, 1f) * jitter);

        target = instance.GetUsefulTarget(target);
        target.Normalize();

        target *= radius;


        target += new Vector3(0, 0, distance);

        Vector3 worldTarget = instance.Owner.transform.TransformPoint(target);

        return(worldTarget - instance.Owner.transform.position);
    }