Unity_본캠프

[내일배움캠프 46일차] UI 미니게임 제작 ing - 4자리 숫자 맞추기

티백고래 2025. 6. 13. 22:31

1. 오늘의 할 일

퍼즐을 풀려면 일단 퍼즐이 존재해야한다.

어제 말한대로 퍼즐은 일단 3가지

1. 타이밍 맞춰서 해제하는 퍼즐

2. 4개의 숫자를 맞춰서 해제하는 퍼즐

3. 아이템 - 오브젝트의 키값을 맞춰서 해제하는 퍼즐

 

여기서 가장 먼저 만든 것은 2번이다.

사유: 범용성이 좋다. (여러곳에서 사용하기 좋다), 너무 단순하지 않고 일단 코드로 로직을 짤 필요성이 있다.

 

2. 제작 과정🛠️

만들어지는 과정을 1단계부터 차례대로 보도록 하자.

<UI는 임의로 작성한 것으로, 단순히 기능 확인용을 의미함>

 

1. 버튼이 안 눌림

: 커서가 Lock이 풀리지 않음 = 커서 위치 고정됨

.cs 내에서 커서를 풀어줌 (Cursor Lock.을 None으로 변경)

 

 

 

 

2. 버튼이 타다다닥 돌아갑니다.

선택 버튼이 할당되지 않음(아직 할당하지 않음)

 

버튼은 어떻게 계산했는가

(curNum+10)%10 11=1, -1 = 9 (0보다 밑으로 떨어져도! 구할 수 있다!)

for 반복문으로 현재값에서 +1, -1씩 증감하게 만들었다. (즉, 0일때 아래로 누르면 9가 된다)

 

: userNum = userNum*10 + curNum 

현재 내가 선택한 숫자배열이 실제 답안과 맞는지 확인하기 위해 숫자들을 정렬하는 식.

해당식을 for로 돌려서, 앞에 있는 숫자는 가장 앞에(총 10^3이 되도록), 가장 마지막에 있는 숫자는 마지막에 더하도록 만들었다.

 

 

 

 

3. 0000~9999사이에서만 지정되도록 Mathf.Clamp 처리

처음 requiredNum(=비밀번호)를 받아올 때, 0~9999사이의 수를 받아오도록 처리를 해둠.

=> 0미만의 정수, 혹은 10000이상의 정수가 들어오면 최소값인 0 (음수), 최대값인 9999(10000이상)로 고정됨.

 

3, 마무리

기능적으로는 여러모로 문제가 없다. 

이후 기능-구성을 분리해서 리팩토링을 수행했다. (굳이 안해도 됐었을 것 같다..)
핀포인트 마커를 가능한 빠르게 구현을 해두고 싶다.