public override void Change()
    {
        if (rb == null)
        {
            rb = GetComponent <Rigidbody2D>();
        }
        if (brotherScript.rb == null)
        {
            brotherScript.rb = brotherObject.GetComponent <Rigidbody2D>();
        }


        //El objeto que modifica a ambos haciendo de controlador es el que pertenece a Dawn
        if (worldAssignation == world.DAWN)
        {
            //Si antes del cambio estaba en dawn, pasara a hacerse kinematic y al otro dynamic, además de darle su velocidad
            if (dawn)
            {
                dawnState        = new SeedIdleState();
                dominantVelocity = rb.velocity;
                brotherScript.dominantVelocity = rb.velocity;
                brotherScript.rb.bodyType      = RigidbodyType2D.Dynamic;
                rb.bodyType = RigidbodyType2D.Kinematic;
                OnlyFreezeRotation();
                brotherScript.rb.velocity = dominantVelocity;
                rb.velocity = new Vector2(0.0f, 0.0f);
                if (duskState != null)
                {
                    duskState.OnEnter(this);
                }
            }
            //Si antes del cambio estaba en dusk, pasara a hacerse dynamic y al otro kinematic, además de darle su velocidad
            else
            {
                brotherScript.SwitchState(1, new SeedPathFollowState());
                touchedByPlayer  = false;
                dominantVelocity = brotherScript.rb.velocity;
                brotherScript.dominantVelocity = brotherScript.rb.velocity;
                rb.bodyType = RigidbodyType2D.Dynamic;
                brotherScript.rb.bodyType = RigidbodyType2D.Kinematic;
                brotherScript.rb.velocity = new Vector2(0.0f, 0.0f);
                rb.velocity = dominantVelocity;
                if (dawnState != null)
                {
                    dawnState.OnEnter(this);
                }
            }

            dawn = !dawn;
            brotherScript.dawn = !brotherScript.dawn;
        }
    }
    override public void Update(Agent a, float dt)
    {
        FlyingSeed agentScript = a.GetComponent <FlyingSeed>();

        if (agentScript.grabbedObject == null)
        {
            agentScript.CheckForObjects();
        }

        if (stompTime > stompTimer)
        {
            stompTimer += dt;
        }

        //Lleva el tiempo establecido en el suelo, así que sube hasta alcanzar speed>1
        if (agentScript.timeOnTheGround > maxTimeOnTheGround)
        {
            if (a.GetComponent <Rigidbody2D>().velocity.y < 1)
            {
                a.GetComponent <Rigidbody2D>().velocity = new Vector2(0, a.GetComponent <Rigidbody2D>().velocity.y + speedUp * Time.deltaTime);
            }
            else
            {
                a.SwitchState(0, new SeedIdleState());
            }
            //Falta tiempo en el suelo
        }
        else
        {
            agentScript.timeOnTheGround += Time.deltaTime;
        }

        //Comprobación de cambio de estado
        if (agentScript.stompedOn && stompTimer > stompTime && agentScript.timeOnTheGround > maxTimeOnTheGround)
        {
            agentScript.SwitchState(0, new SeedFallState());
            stompTimer = 0;
        }
    }