es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿En Unity cómo detengo las declaraciones matemáticas perpetuas?

La pregunta es sencilla, pero no puedo, por más que lo intento, entenderla.

Mi lógica es la siguiente:

// Los floats estáticos son StatBase.maxHealth = 0 y rStat.maxHealth = 70

La clase rStat : Monobehaviour {

public bool nomatter = false;

void Update()
{
    if (Input.GetMouseButtonDown(0))
    {
        nomatter = true;
    }


    if (nomatter == true)
    {
        healthcalc();
    }

    void healthcalc()
    {
     StatBase.maxHealth += rstat.maxHealth; // StatBase.maxHealth debería ser igual a 70 pero el número nunca deja de aumentar

     nomatter = false;

    }
}
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El código anterior parece tener un error de lógica en el método healthcalc(). La declaración StatBase.maxHealth += rstat.maxHealth; está sumando rstat.maxHealth continuamente a StatBase.maxHealth y no hay una declaración condicional para detener la adición. Como resultado, StatBase.maxHealth seguirá aumentando sin límite.

    Para solucionar el problema, puede modificar el método healthcalc() de la siguiente manera:

    void healthcalc()
    {
        StatBase.maxHealth = rStat.maxHealth;
        nomatter = false;
    }
    

    Con la modificación, el método healthcalc() establecerá el valor de StatBase.maxHealth en rStat.maxHealth, que en este caso debería ser 70, y luego restablecerá la variable nomatter a false.

Comments are closed.