요거 질문했는데 이번엔 스크립트쪽에서 어케 해야 할지 모르겠다
이게 움짤로 보일지 모르겠는데 대충 상황이 특정 키를 누르면 그 부분을 때리고 그 방향을 가만히 바라보고 있는 걸 구현해보고 싶어서
rpg게임 캐릭터들이 이런 방식으로 동작하잖아? 그래서 rpg만들기 보면서 따라했는데 아무리 해도 내가 원하는대로 안되길래 내가 맘대로 해봤는데...
private void Update() {
if(Input.GetKeyDown(KeyCode.W)) {
animator.SetFloat("DirY", 1);
animator.SetBool("Attack", true);
} else if(Input.GetKeyDown(KeyCode.S)) {
animator.SetFloat("DirY", -1);
animator.SetBool("Attack", true);
} else if(Input.GetKeyDown(KeyCode.A)) {
animator.SetFloat("DirX", -1);
animator.SetBool("Attack", true);
} else if(Input.GetKeyDown(KeyCode.D)) {
animator.SetFloat("DirX", 1);
animator.SetBool("Attack", true);
} else {
animator.SetFloat("DirX", 0);
animator.SetFloat("DirY", 0);
animator.SetBool("Attack", false);
}
// animator.SetFloat("DirX", 0);
// animator.SetFloat("DirY", 0);
// vector.Set(Input.GetAxisRaw("Horizontal"), Input.GetAxisRaw("Vertical"), 0);
// animator.SetFloat("DirX", vector.x);
// animator.SetFloat("DirY", vector.y);
// animator.SetBool("Attack", true);
}
문제는 내가 아직 C#에 익숙하지 않다는거다 해봐야 자바 기초 조금 할 줄 알아서 대충 머리 써가면서 했는데
이게 Update 안에 넣어서 그 키를 안누르는 순간부터 바로 캐릭터가 자세를 잡아버리고 심지어 그 방향키를 입력했는데도 치는 애니메이션 후에 그 방향 안보고
뒤만 계속본다... 이거 어떤식으로 타개해야하냐 막막함 지금...
일단 Update문만 봐도 w,a,s,d키가 한번 눌릴 때 를 제외한 상태 때문에 (= else문) 타고 계속 애니메니션이 다 끝나기도전에 돌아가고 있는거임 공격애니메이션을 취할땐 Update가 안돌게 하던지 else문 없애버리고 공격 애니메이션이 끝나면 idle 상태로 돌아가게 하던지 해야할듯
idle상태로 돌아가게 할려면 따로 클래스를 만들어야 하는거임?
저 화살표에 끝나면 자동으로 넘어가게 설정 해도 되고 코드로 제어하려면 코루틴써서 클립끝나면 돌아가게끔 함수 만들어도되고
제어는 저 캐릭터 스크립트에서 관리할테니까 거서 함수만 만들어도됨
오케이 코루틴 함 검색하고 배워볼게 고마워