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, 마무리
기능적으로는 여러모로 문제가 없다.
이후 기능-구성을 분리해서 리팩토링을 수행했다. (굳이 안해도 됐었을 것 같다..)
핀포인트 마커를 가능한 빠르게 구현을 해두고 싶다.
'Unity_본캠프' 카테고리의 다른 글
[내일배움캠프 50일차] 최종프로젝트 렛츠고 (2) | 2025.06.19 |
---|---|
[내일배움캠프 47일차] TimingMatch (0) | 2025.06.16 |
[내일배움캠프 45일차] UI로 미니게임 만들기 준비 (0) | 2025.06.12 |
[내일배움캠프 44일차] Shader가!! 오류가!! 에셋이!!! (1) | 2025.06.11 |
[내일배움캠프 43일차] 인벤토리~인벤토리~ (1) | 2025.06.10 |