¿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;
}
}
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:
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.