Witam , oglądajac poradnik z pewnej gry i zauwazyłem że zmiane zachowań w grze robi za pomocą Enum czytałem o tym troche i juz sie orietnuje w temacie ale nie rozumiem jednej rzeczy , mianowicie tych switchy z fragmentu kodu przedstawionych nizej , poswieciłem troche czasu aby spróbować to zrozumiec ale nic mi nie przychodiz do glowy a w googlach tez troche szukałem i nie było nic podobnego wiec czy mógłby mi ktos wyjasnic co tu sie dzieje w tym kodzie z tymi switchami ?! (to jest kawałem wycietego kodu bo nie chciałem aby tu było 500 linijek tego skryptu ;p)
private enum State
{
Moving,
Knockback,
Dead
}
private void Damage(float[] attackDetails)
{
currentHealth -= attackDetails[0];
Instantiate(hitParticle, alive.transform.position, Quaternion.Euler(0.0f, 0.0f, Random.Range(0.0f, 360.0f)));
if(attackDetails[1] > alive.transform.position.x)
{
damageDirection = -1;
}
else
{
damageDirection = 1;
}
if(currentHealth > 0.0f)
{
SwitchState(State.Knockback);
}
else if(currentHealth <= 0.0f)
{
SwitchState(State.Dead);
}
}
private void SwitchState(State state)
{
switch (currentState)
{
case State.Moving:
ExitMovingState();
break;
case State.Knockback:
ExitKnockbackState();
break;
case State.Dead:
ExitDeadState();
break;
}
switch (state)
{
case State.Moving:
EnterMovingState();
break;
case State.Knockback:
EnterKnockbackState();
break;
case State.Dead:
EnterDeadState();
break;
}
currentState = state;
}
}