평타 스킬

CJB_ny·2022년 5월 16일
0

2D_Project

목록 보기
11/23
post-thumbnail

먼저 키보드 입력받는 부분에서 이렇게 해주면

애니매이션은 틀어지지만

다시 원래 상태로 복구를 시켜주는 부분이 없다.

그리고 실제로 좌표를 이동하거나 방향을 바꾸는 부분에서도

못들어 오게 처릴 해주어야 한다.

-> 스킬을 사용할 때는 움직이거나 그러면 안되니까.

그리고

이렇게 우리가 UpdateController에서 해당 Update함수들을 호출 하고

이것을

원하는 상태만 들어오도록 처리를 해주었는데 이렇게하면 나중에 if문이 계속 늘어나서 힘들 것이다.

그래서

여기있는 Update들도 State기반으로 관리를 하면 편하다.

예외 처리 한 부분 지우고 swith문으로 분기를 하면된다.

그래서 이렇게 해주면 이제

책임이 조금더 명확해지는 것이다.

그리고

혹시라도 상속받은 쪽에서 재정의를 원할 수 있기 때문에 이렇게 수정해주도록 하자.

그리고

PlayerController의 업데이트문을 이렇게 수정한다.

스위치문으로 Idle일 경우 Dir을 바꿀 수 있게 하고 Idle상태에서 스킬을 사용할 수 있도록

Idle상태에서 스킬 사용할꺼면 입력받는 부분 따로 빼주었다.

움직일 때도 방향을 입력 받을 수 있도록.

그리고

스킬을 사용하는 동안은 스킬을 사용하는 상태가 지속이 되도록

"코루틴"으로 설정해준다.

0.5초동안은 스킬을 사용하는 상태이며 0.5초 후에 State를 다시 바꿔주는 형태로 하도록 하자.

그래야 0.5초동안은 State가 Skill이라 UpdateController에서 다른 입력을 받더라도 상태가 바뀌거나 이동하거나 그러지 않는다.


데미지 판정하는 부분

우리가 지금 펀치를 때렸을 때

"바라보는 방향" 바로 앞에 물체가 있는 지 없는지 알아야 하는데

Object.Find라는 함수로 object찾을 수 있었다.

그러러면 바라보고있는 방향의 바로 앞칸을 찾아야 되는데

이런 부분들은 필요할 때 그때그때 만들면된다.

그래서 이렇게 내 바로 앞칸의 좌표를 이렇게 맞춰 주도록 하자.

뭐 일직선으로 5칸 짜리 때리는 그런게 있다면 GetFrontCellPos에 인자를 전달을 해주어가지고

곱하는식으로 cellPos를 처리를 하야도 될 것이다.

profile
공부 일기장으로 변해버린 블로그 (https://cjbworld.tistory.com/ <- 이사중)

0개의 댓글