모름지기 방탈출 게임에서 가장 흔한 수수께끼(?)는 비밀번호를 입력해서 푸는 것일 것이다...!
처음에는 1부터 9까지를 키보드로 누르면 화면에 뜨게끔 코딩해야 하는줄 알았지만 UI 기능 중 Input Field 라는 기능을 사용하면 굳이 하드 코딩 하지 않아도 비번을 치는 기능을 만들 수 있다.
그래서 우선 Hierarchy에다 + 누르고 UI 클릭 후 Input Field를 클릭하면 canvus와 text 등 여러 목록이 나오는데, 그 중 Placeholder는 사용자가 봤을 때 보이는 화면이고 그걸 클릭해서 커서가 생기면 숫자든 문자든 입력할 수 있다. 나는 Placeholder의 text 를 Enter password로 바꿔보았다. 그리고 text는 건들 필요가 없는게, 사용자가 클릭해서 무언가를 치면 그 무언가가 text에 입력된다. 이걸가지고 스크립트를 만들어서 비밀번호가 맞을시 오브젝트가 사라지게 하고, 틀릴 시 디버그로 에러가 뜨게 해 보았다.
그런데 여기서 삽질을 했던 게, 이 Placeholder 화면 자체가 scene 에서는 보이는데 game을 실행하면 보이지 않는다는 게 이상했다. 이게 클릭을 하면 다른 오브젝트가 나와서 비번을 치는 오브젝트가 나타나게 하는 거였는데 그 오브젝트 사이즈에 맞춰서 집어넣었으나 나오지 않았고, z축도 변경해 보았지만 나오지 않았다.
그래서 시도해 본 것이 이 오브젝트 (프리랩 맞나?) 가 있는 곳이 아닌 상위 디렉토리에 InputField를 넣었더니 왼쪽 하단 밑에 생긴 것을 확인했다! - 대략 두 세시간 만에 문제해결...! (눈물)
그렇게 문제는 확인해본 결과 캔버스 였다. 오브젝트가 생성된 곳은 아래쪽인데, InputField의 캔버스는 중심이 위쪽이었기에 그 캔버스화면에 벗어나게 넣었으니 당연히 나오지 않았던 것...!
위의 사진을 보면 맨 왼쪽 아래가 비번이 들어갈 오브젝트 이고 보다시피 엄청나게 작다. 크기를 최대로 키우고 위치를 옮기니 정삭적으로 보이게 되었다.
참고로 저 비번 치는 거에 ****로 바꾸는 방법은 InpuField에 들어가서 Content Type을 password 로 변경해주면 된다.
스크립트는 나중에 좀 더 수정하고 올릴 계획...
여기까지 유니티 초보의 삽질이었다~
댓글