Exemplo n.º 1
0
    //    //transform.position = dest;

    //    // seek towards dest
    //    /*
    //    rb.AddForce((dest - (Vector2)transform.position).normalized * acceleration);
    //    if (rb.velocity.magnitude > max_speed)
    //        rb.velocity = (dest - (Vector2)transform.position).normalized * max_speed;
    //    */

    //    // rotate if we are far enough away
    //    if(((Vector2)transform.position - dest).magnitude > 0.25f)
    //    {
    //        Vector2 _direction = (dest - (Vector2)transform.position).normalized;
    //        float angle = Mathf.Atan2(_direction.y, _direction.x) * Mathf.Rad2Deg;

    //        float lerp_angle = Mathf.LerpAngle(transform.eulerAngles.z, angle, Time.deltaTime * rotational_speed);
    //        transform.rotation = Quaternion.Euler(0f, 0f, lerp_angle);
    //    }

    //    if(Vector2.Dot((Vector2)transform.position - dest, transform.right) < 0)
    //    {
    //        // accelerate
    //        rb.AddForce(transform.right * acceleration);
    //        if (rb.velocity.magnitude > max_speed)
    //        {
    //            rb.velocity = rb.velocity.normalized * max_speed;
    //        }
    //    }
    //}

    private void OnCollisionEnter2D(Collision2D collision)
    {
        //print("collision start!");
        if (collision.gameObject.GetComponent <BlackBird>())
        {
            FormationManager f_manager = FindObjectOfType <FormationManager>();
            if (f_manager)
            {
                f_manager.RemoveAgent(this);
            }
            else
            {
                TwoLevelManager tlm = FindObjectOfType <TwoLevelManager>();
                if (tlm)
                {
                    tlm.RemoveAgent(this);
                }
            }
            Destroy(this.gameObject);
        }
    }