Switch z Enum o co chodzi

0

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;
    }

  

}
3

To jest tak jakbyś wartość typu int po prostu opakował w nazwy.

int n1 = 0;
int n2 = 1;
int n3 = 2;

Powyższy kod można zamienić na:

enum eMyNs
{
     n1,
     n2,
     n3
}

Odwołujemy się wtedy do tego: eMyNs.n1. Spójrz na poniższe screeny:
screenshot-20210125002725.png

screenshot-20210125002738.png

screenshot-20210125002759.png

1 użytkowników online, w tym zalogowanych: 0, gości: 1