TPS 개발일지3 - 스나이퍼 시스템

Taegang Yun·2023년 8월 18일
1

우선 단발모드, 연발 모드를 구현해줬다.

스나이퍼엔 생각할 게 좀 있었다

간단히 생각하면 줌을 더 많이 땡겨주면 된다!

그리고 스나이퍼 UI를 만들어주고, 총 유형이 sniper일 경우에 해당 UI를 띄워준다.

그리고 생각해보니까 스나이퍼는 그냥 연발 모드를 없애는 것이 더 나을 것 같다.

괜히 막 하다 보니까.. 구현은 됐는데 자꾸 반쪽 구현이 된다.

단발 모드-> 잘 됨
연발 모드-> 꾹 누르고 있을 경우 잘 동작, 하지만 연발 모드로 놓고 다다다다 누르면 스나도 다다다다 나가는 문제 -> 해결하기 귀찮아 그냥 연발모드를 없애!

모드 변경 키를 누를 경우 스나이퍼다 ? 그냥 동작을 안하게 하고 스나이퍼의 디폴트 모드를 단발로 놔야겠다.

자.. 이건 해결했는데 후 또 다른 문제가 생겼다.

연발에서 총의 연사 속도를 조절하는 것은 쉽다.

근데 단발에서 마우스를 누를 때마다 펑펑펑펑 나가면 안 되니까 delay를 줬는데...

잘 되는 것 같더니 버그를 발견했다.

스나는 다시 쏘려면 2.5초가 있어야 한다. 탕~ 하고 2.5초 후 탕~ 할 수 있게 만들어놨는데

스나를 쏘자마자 라이플로 총을 바꾸고 쏘면 안나간다.

캐릭터에 can fire 부울 변수를 놓다보니 이런 문제가 생긴다. 총으로 이걸 옮겨주면 될 거 같다.

비슷한 이치로 IsReloading, CanFire 모두 옮겨줘야 할 거같다.

하.. 지금은 너무 많이 해서 나중에 장전, 발사 이런건 모두 캐릭터가 아닌 총에서 구현하는 것이 맞는 것 같다.

무기를 Equip할 경우 Can fire를 다시 on으로 하게 했다. 그니까 총 자체에서도 시간을 재고, 총을 다시 들을 때도 설정해주는 것이다.

그런데 체인지샷이 된다 그래서...

총을 막 갈아끼면 탕 탕탕 탕 이 가능하다

그래서 캐릭터 변수로 IsSnipperShooting을 또 넣어주고, 따로 시간을 재게 했다. 그래서 총을 바꾸더라도, 무조건 해당 총의 시간이 지나야 쓸 수 있다.

됐다!!

총을 막 바꿔도 2.5초마다만 쏠 수 있다 (계속 누르고 있다고 할때)

이제는 인풋 값을 조정해줘야한다.

줌을 당겼을 때, 확실히 줌을 당기니 마우스를 살짝만 움직여도 휙휙 바뀐다

줌을 당기면 마우스 입력을 엄청 작게 해서 많이 움직여도 적게 움직이게 하면 될 것 같다.

대충 이런 식으로 논리를 짜고.. aim에서도 isSnipperAiming이라는 변수를 만들어줘서 관리하게 했다.

완성!

profile
언젠간 전문가가 되겠지

0개의 댓글