Zefirot
@Zefirot

От чего не переключается анимация?

С анимацией только знакомлюсь и вот накидал такой себе тестовый вариант, работают 3 кнопки пока что AWD, причём учитывается их совокупность AW - W - WD, 3 соответственно анимации
Animator PlayerAnimator;
    private string PlayerCondition = "Idle";
    private string PlayerDirMove = "";
    private void Start(){
        PlayerAnimator = GetComponent<Animator>();
        }
    private void Update(){
        if(Input.GetKey(KeyCode.W) && Input.GetKey(KeyCode.A)){ PlayerDirMove = "WalkForwardLeft"; }
        else if(Input.GetKey(KeyCode.W) && Input.GetKey(KeyCode.D)){ PlayerDirMove = "WalkForwardRight"; }
        else if(Input.GetKey(KeyCode.W)){ PlayerDirMove = "WalkForward"; }
        else{ PlayerDirMove = ""; }
        if(PlayerDirMove == "WalkForwardLeft" && PlayerCondition != PlayerDirMove){ SetAnimator(PlayerDirMove); }
        else if(PlayerDirMove == "WalkForwardRight" && PlayerCondition != PlayerDirMove){ SetAnimator(PlayerDirMove); }
        else if(PlayerDirMove == "WalkForward" && PlayerCondition != PlayerDirMove){ SetAnimator(PlayerDirMove); }
        else if(PlayerDirMove == "" && PlayerCondition != "Idle"){ SetAnimator("Idle"); }
        }
    private void SetAnimator(string anim){
        PlayerAnimator.SetBool("WalkForwardLeft", false);
        PlayerAnimator.SetBool("WalkForwardRight", false);
        PlayerAnimator.SetBool("WalkForward", false);
        PlayerAnimator.SetBool("Idle", false);
        PlayerAnimator.SetBool(anim, true);
        PlayerCondition = anim;
        Debug.Log(PlayerCondition);
        }

Проблема собственно в следующем - если по отдельности нажимать AW, W, WD то всё работает, а есть нажимать W а потом A к примеру то персонаж всё равно топает прямо а не прямо и влево, причём в дебаге я вижу что направление изменилось...
Подскажите что может быть не так?
  • Вопрос задан
  • 40 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы