예제 #1
0
    void Update()
    {
        //regola la velocita' massima di movimento
        if (Mathf.Abs(rg.velocity.x) > velocitaMassima)
        {
            rg.velocity = new Vector2(velocitaMassima, rg.velocity.y);
        }
        else
        {
            rg.velocity = new Vector2(dir.x, rg.velocity.y);
        }
        if (rg.velocity.y < velocitaDiscesa)
        {
            rg.velocity = new Vector2(rg.velocity.x, velocitaDiscesa);
        }

        //controlla se il personaggio ha incontrato il terreno durante la discesa
        if (Mathf.Abs(rg.velocity.y) < 0.000001f)
        {
            isJumping = false;
            hover.FineFluttuata();
            hover.RicaricaFluttuata();
            if (prevVel < velocitaVibrazione)
            {
                prevVel = 0;
                UIManager.istanza.Danneggia();
            }
        }
        else
        {
            isJumping = true;
        }
        //controlla il potere di fluttuata
        hover.Fluttua();
        //controlla il potere di sparo
        minigun.Spara(GetDirection());

        dash.Controlla(GetDirection());
        //si salva la velocita con cui sta cadendo da usare alla prossima iterazione
        prevVel = Mathf.FloorToInt(rg.velocity.y);
    }