С анимацией только знакомлюсь и вот накидал такой себе тестовый вариант, работают 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 к примеру то персонаж всё равно топает прямо а не прямо и влево, причём в дебаге я вижу что направление изменилось...
Подскажите что может быть не так?