Example #1
0
    // Update is called once per frame
    void Update()
    {
        Vector2 accel = evade.getSteering(target);

        steeringBasics.steer(accel);
        steeringBasics.lookWhereYoureGoing();
    }
Example #2
0
    public Vector3 getSteering(MovementAIRigidbody target, ICollection <MovementAIRigidbody> obstacles, out Vector3 bestHidingSpot)
    {
        //Find the closest hiding spot
        float distToClostest = Mathf.Infinity;

        bestHidingSpot = Vector3.zero;

        foreach (MovementAIRigidbody r in obstacles)
        {
            Vector3 hidingSpot = getHidingPosition(r, target);

            float dist = Vector3.Distance(hidingSpot, transform.position);

            if (dist < distToClostest)
            {
                distToClostest = dist;
                bestHidingSpot = hidingSpot;
            }
        }

        //If no hiding spot is found then just evade the enemy
        if (distToClostest == Mathf.Infinity)
        {
            return(evade.getSteering(target));
        }

        //Debug.DrawLine(transform.position, bestHidingSpot);

        return(steeringBasics.arrive(bestHidingSpot));
    }
Example #3
0
 protected override void Update()
 {
     steeringUpdate         = new SteeringOutput();
     steeringUpdate.linear  = myMoveType.getSteering().linear;
     steeringUpdate.angular = myRotateType.getSteering().angular;
     base.Update();
 }
Example #4
0
    // Update is called once per frame
    protected override void Update()
    {
        steeringUpdate = new SteeringOutput();
        if (seeking)
        {
            steeringUpdate.linear = moveTypeSeek.getSteering().linear;
        }
        else if (fleeing)
        {
            steeringUpdate.linear = moveTypeFlee.getSteering().linear;
        }
        else if (evading)
        {
            steeringUpdate.linear = moveTypeEvade.getSteering().linear;
        }
        else
        {
            steeringUpdate.linear = moveTypeAvoid.getSteering().linear;
        }

        steeringUpdate.angular = facing ?
                                 rotateTypeFace.getSteering().angular :
                                 rotateTypeLWYG.getSteering().angular;
        base.Update();
    }
    // Update is called once per frame
    void FixedUpdate()
    {
        Vector3 movement = evade.getSteering(policeRigidBody);

        rb.MovePosition(/*transform.position + */ movement);
    }