2015-06-04 3 views
0

Я хотел оживить объект в единстве. так что сначала я хочу проверить, что такое состояние моего игрока. Я должен сказать, что я использую enum для обозначения состояний. вот мой код для проверки состояния:Проверка состояний в единстве

switch(PlayerStateController.playerStates) 
    { 
    case PlayerStateController.playerStates.idle: 
     break; 
    case PlayerStateController.playerStates.left: 
     transform.Translate(new Vector3(-1.5f * Time.deltaTime, 0.0f, 0.0f)); 
     break; 
    case PlayerStateController.playerStates.right: 
     transform.Translate(new Vector3(1.5f * Time.deltaTime, 0.0f, 
             0.0f)); 
     break; 
    } 

, но у меня есть ошибка:

Expression denotes a 'type', where a 'variable', 'value' or 'method group' was expected

+3

'переключатель (PlayerStateController.playerStates)': вы не может включать тип. Вам нужно включить переменную, например 'currentPlayerState'. – CodeCaster

ответ

0
public class AnyClass { 
    public enum PlayerState { 
     idle, 
     left, 
     right 
    } 
} 

-

public class AnyOtherClass { 
    void DoStuff(PlayerState state) { 
     switch (state) { 
     case PlayerState.idle: 
      break; 
     case PlayerState.left: 
      transform.Translate(new Vector3(-1.5f * Time.deltaTime, 0.0f, 0.0f)); 
      break; 
     case PlayerState.right: 
      transform.Translate(new Vector3(1.5f * Time.deltaTime, .0f, 0.0f)); 
      break; 
     } 
    } 
+0

это было бы легко, если перечисление и метод оба были в одном классе. но мое перечисление находится в другом классе. как я могу это решить? –

+0

вы можете поместить enum всюду в проект, и он будет работать до тех пор, пока вы импортируете пространство имён, в котором оно находится. –