Ejemplo n.º 1
0
    public void Steer(Vector3 target, Vector3 velocity)
    {
        //TODO Homework
        float   prediction_multiplier = Vector3.Distance(move.target.transform.position, move.transform.position) / max_prediction;
        Vector3 prediction_pos        = target_move.transform.position + target_move.movement * prediction_multiplier;


        flee.Steer(prediction_pos);

        /*  float prediction_multiplier = Vector3.Distance(transform.position, target_move.transform.position) / move.max_mov_velocity;
         * Vector3 prediction_pos = target_move.transform.position + target_move.movement * prediction_multiplier;
         *
         *
         * GetComponent<SteeringArrive>().Steer(prediction_pos);
         */
    }
Ejemplo n.º 2
0
    public void Steer(Vector3 target, Vector3 velocity)
    {
        // TODO 6: Create a fake position to represent
        // enemies predicted movement. Then call Steer()
        // on our Steering Arrive

        Vector3 predictedPosition = Vector3.zero;

        // Prediction 1 (simple)
        predictedPosition = target + velocity * max_prediction;

        // Prediction 2 (improved. The acceleration decreases depending on how close the target is)
        float distanceToTarget = Vector3.Distance(transform.position, target);
        float prediction       = distanceToTarget / max_prediction;

        predictedPosition = target + velocity * prediction;

        flee.Steer(predictedPosition);
    }
Ejemplo n.º 3
0
    public void Steer(Vector3 target, Vector3 target_velocity)
    {
        // HOMEWORK: Create a fake position to represent
        // enemies predicted movement. Then call Steer()
        // on our Steering Flee

        Vector3 diff = transform.position - move.target.transform.position;

        float distance = diff.magnitude;
        float speed    = move.movement.magnitude;
        float fake_prediction;

        if (speed < distance / max_seconds_prediction)
        {
            fake_prediction = max_seconds_prediction;
        }
        else
        {
            fake_prediction = distance / speed;
        }

        flee.Steer(move.target.transform.position + (target_velocity * fake_prediction));
    }