개발 중인 게임의 공격버튼에 변화를 주었다.
Input.GetMouseButton(0)
단순한 총알 공격.
하지만 한번만 누르면 산탄총(범위공격)을 하고 누르고 있으면 연속공격을 하게 바꾸기로 하였다.
Devil Daggers의 게임을 보고 그 시스템이 너무나 마음에 들었다.
우선은 나의 게임에 이 공격 방식이 적합한지 확인해 보았다.
나의 게임은 공격, 그리고 범위스킬을 통한 적들의 넉백과 잠시동안의 움직임 멈춤. 그리고 슬로우 스킬.
수없이 머리 속으로 상상을 해봤지만 딱히 나쁘지 않는 것 같다.
그렇다면 적용해서 테스트해봐야지.
우선은 Input.GetMouseButtonDown(0)으로 되어 있는 키 버튼을 두개로 나눌 필요가 있었다.
Input.GetMouseButtonDown(0) 그리고 Input.GetMouseButton(0)
한번만 누르면 산탄총 발사. 누르고 있으면 연속 공격.
하지만 마우스 버튼을 누르는 순간 산탄 공격이 이루어졌다.
나는 연속공격을 위함이었지만 우선 산탄공격이 나간 후 연속공격이 이루어졌다.
그렇다면 명령어를 바꿔야 하나?
Input.GetMouseButtonUp(0) 그리고 Input.GetMouseButton(0)
이번엔 산탄 공격이 아예 먹통이다. 한번만 눌러도 한발만 나간다.
Input.GetMouseButtonDown(0)을 적용하였을 때는 산탄총이 나갔으니 다른 코딩에서 문제가 있어 보이진 않았다.
뭐지?
결국 난 Input.GetMouseButtonDown(0)에 약간의 딜레이를 주기로 하였다.
올바른 해결법일까? 하지만 여러 방법을 써보면서 문제를 해결하는 것도 코딩실력을 늘리는데 도움이 될 것이라고 생각한다. 아직 내가 문제의 원인을 정확히 알아낼 수 없다면 어떻게 그 문제를 해결할 것인가? 끊임없이 생각해 봐야 하지 않을까?
헷갈릴 수도 있는 버튼 입력 상태를 받아오는 함수들을 한번 정리해 보며 다음번에는 어떻게 처리할 것인지 고민해 보는것도 좋을 것 같다.
Input.GetMouseButtonUp : 마우스 버튼을 눌렀다 떼는 순간
Input.GetMouseButton : 마우스 버튼을 누른 상태
Input.GetMouseButtonDown : 마우스 버튼을 누르는 순간
(0) : 왼쪽 버튼
(1) : 오른쪽 버튼
(2) : 가운데 버튼
키보드 입력시에도 비슷하다.
GetKeyUp : 키를 눌렀다 떼는 순간
GetKey : 키를 누른 상태
GetKeyDown : 키를 누르는 순간
이를 잘 사용해서 내가 원하는 게임을 만들어 볼 수 있을 것이다.
잘 활용해 보자.
나의 게임에서 대작과 공통점이 하나 생긴 날이다.
'게임개발' 카테고리의 다른 글
파도처럼 몰려오는 적들! 포인트 기반 웨이브 스폰 시스템(wave spawn system) (0) | 2025.03.20 |
---|---|
몇 발 남았지? UI에 남은 총알을 표시해보자 (0) | 2025.03.19 |
쿨타임 언제 다 돌지? 스킬 쿨타임 게이지 표시. (0) | 2025.03.14 |
ctrl C + ctrl V. 리스폰 될 때마다 강해지는 보스 (0) | 2025.03.10 |
첫번째 게임 개발의 한계. 그리고 리뉴얼 결정. (0) | 2025.03.04 |