본문 바로가기
유니티5 독학 & 게임 제작

유니티5 독학하기 그 44번째 걸음-드디어 끝난 유니티 NGUI 게임 프로젝트 챕터 3 끝내기

by 인터넷떠돌이 2018. 5. 29.
반응형

안녕하세요?


이래저래 질질 끌기는 했지만, 그래도 중요하다는 생각이 들어서 유니티 NGUI 게임 프로젝트라는 책의 공부를 하다보니 책의 챕터3를 이제서야 끝냈다는 생각이 듭니다. 아무튼 여기서는 닉네임을 유지하는 것을 만들고, 로컬리제이션이라고 해서 어떻게 하면, 메뉴에 나오는 언어를 바꿀 수 있는지와, 앵커의 사용방법에 대해서 한번 공부를 해 보았고, 그 내용을 포스팅 하고자 합니다.



그래서 먼저 UIRoot>Options>Nickname>Input을 선택하도록 합니다.



여기서는 Event Trigger라고 해서, 위 스크린샷에서 보이는 C#이라고 표시된 것을 선택 하도록 합니다.



그렇게 하면 UI Event Trigger라고 화면이 인스펙트뷰에서 뜨는 데.....



위 스크린샷에서 보이는 것 처럼 Notify에 Input으로 만들어 주고, 다음으로 Method에 UIInput/Save Value라고 지정을 합니다. 이렇게 하고 이제 유니티상에서 플레이 버튼을 누르면......



이렇게 해서 프로그램을 종료해도 계속해서 닉네임으로 입력한 값이 그대로 남아 있는 것을 볼 수 있습니다.



이제 로컬리제이션이라고 해서, 언어를 바꾸는 작업을 해야 하는데, 여기서는 먼저 Assets항목에서 Resources라는 폴더를 새로 생성하도록 해 보아야 합니다.



그리고 나서 유니티5 상에서는 txt파일을 생성할 수 없으니, 하는 수 없이 윈도 탐색기로 가서, Localization.txt라는 파일을 만들어 주도록 합니다.



그리고 나서 이제는 유니티5 상에서 txt파일이 생성된 것을 볼 수 있었고, 이제는 수정을 위해서 인스펙트 뷰에서 Open을 누르도록 합니다.


그리고 나서 생성된 Localization.txt에 먼저 위 스크린샷과 같이 입력을 하도록 합니다. 이미 실습을 해본 결과 저 KEY라는 단에 들어가는 것이 언어의 이름인데, 유니티5에서 지정을 한 언어의 이름과 같아야만 합니다. 그리고 나서 아래에서 이런 규칙을 따르는 것으로 보입니다.


유니티5상 Label이름,"언어1번의 번역명","언어2번의 번역명","언어3번의 번역명".............




그렇게 Localization.txt를 만든 다음에, UIRoot>Main>Title>Label항목을 선택하도록 합니다.



Add Component를 눌러서 위 스크린샷과 같이 Localize를 선택하도록 합니다.



위 스크린샷처럼 인스펙트뷰에서 Key항목을 MainMenu라고 입력을 하도록 합니다. 그러면 아래의 항목이 나오게 됩니다.



다음에는 UIRoot>Options>Language>List를 선택하도록 합니다.



여기서는 Language Selection이라는 컴포넌트를 선택하도록 합니다.



인스펙트뷰를 보면, 위 스크린샷에서 나와 있는 Language Selection이라는 항목은 어떻게 변경이 불가능 합니다.



일단 MainMenu하나이기는 하지만, 이렇게 불어와 영어로 바뀌는 것을 볼 수 있습니다. 이제 이것을 다른 레이블까지 확대를 해야 합니다.



위 스크린샷처럼 역시 바꾸고자 하는 레이블명,"언어1번역명","언어2번역명"... 이런식을 지키면서 가는 겁니다.



먼저 위 스크린샷과 같이 계츠뷰에서 label이라고 입력을 해서, 지금까지 만든 모든 레이블들을 다 가져 오도록 합니다.



그리고 다음으로는 위 스크린샷과 같이 Ctrl+A를 눌러서 단 한번의 클릭으로 계층뷰의 모든 레이블을 한번에 선택할 수 있도록 만들어 줍니다.



그 다음으로는 위 스크린샷처럼 Add Component를 선택해서 Localize라는 항목을 선택하도록 합니다.




그리고 여기서는 특별히 Key를 지정하지 않아도, 레이블명과 같은 KEY값이 Localization.txt에 있으면 알아서 찾아 간다고 합니다. 일단 이걸 믿고서, 한번 실행을 하도록 합니다.



몇몇 군데가 옥의티로 바뀌지 않은 것을 볼 수 있는데, 일단 먼저 중복이 된 Localize라는 컴포넌트를 제거해야 합니다.



먼저 UIRoot>Main>Title>Labe을 선택합니다.



여기에는 위 스크린샷에 보이는 것처럼, 톱니바퀴를 눌러서 Remove Component를 선택하도록 해서 제거를 해야 합니다.



그 다음으로는 UIRoot>Welcome>Text>Label을 선택하도록 합니다.



이제 레이블명과 KEY명이 달라서 출력이 되지 않던 환영인사 메세지가 영어와 불어로 제대로 나오는 것을 볼 수 있습니다.



일단 메인메뉴 타이틀인 Main Menu가 불어로 바꿀시 Main Principal이라고 바뀌는 것만이 아니라 상단의 환영인사도 바뀌고, 몇몇 버튼은 바뀌는 것을 볼 수 있습니다.



그리고 아직은 리스트라는 것이 아직은 언어의 번경이 적용되지 않았으니, 이제는 UIRoot>Options>Subtitles>List를 선택하도록 합니다.



여기서는 위 스크린샷에 보이는 것처럼 Localized항목을 체크하도록 합니다.



그리고 나서 계속해서 Enable항목이 제대로 불어와 영어로 번역이 되지 않았는데, 역시나 레이블명과 Key가 다르다는 것을 볼 수 있습니다. 그래서 하는 수 없이 그냥 Enabled라고 직접 Key를 지정해 주어야 했습니다.




이제 제대로 나왔다는 것을 볼 수 있습니다. 여기서는 역시 영어와 불어로 전환이 가능하며, 환영인사를 비롯한 EXIT버튼까지 전환이 되는 것을 볼 수 있었습니다.


이제 앵커에 대해서 알아보고자 합니다. 만약 저 UI디자인 중에 하나라도 바뀌면 모양이 깨지는 현상이 벌어지게 되는데, 이것 때문에 서로 연결이 되어서 하나의 사이즈가 바뀌면-특히 가장 바깥쪽 최외각이 줄어들거나 늘어나도 따라서 연결된 구성물이 따라서 커지거나 줄어드는 것을 잡아주는 역할을 하게 됩니다. 한마디로 상대적인 비율로 해당 오브젝트의 크기를 번환시켜주게 됩니다.



일단 앵커(anchor)의 타입을 unified를 선택하도록 하고, 무엇에 따라서 움직이는데, Target을 Background로 해서 이 Background의 사이즈가 변하면, 따라서 Title의 스프라이트가 변하도록 해 줍니다.



일단 Close라고 해서 닫기버튼의 게임 오브젝트를 선택하도록 합니다.



그리고나서 Anchor의 type을 Unified로 선택을 하도록 하고, 다음으로 target을 UIRoot>Main>Title>Sprite를 선택해서, 목표에 따라서 닫기 버튼도 일정한 비율로 따라서 움직이고 작아지고 줄어들도록 해 줍니다.



그리고 나서 다음에는 UIRoot>Main>Title>Label을 선택하도록 합니다.



역시 여기서는 위 스크린샷처럼 역시 이렇게 설정을 해 주도록 합니다. 



마지막으로 앵커의 적용을 위 동영상에서 보여주고 있습니다. 이렇게 해서 앵커의 적용까지 해서 유니티NGUI게임 프로젝트라는 책의 챕터3는 다 마치는 데 성공했습니다. 이것만 해도 어느정도는 게임의 타이틀과 옵션 페이지까지는 만들 수 있어는 보입니다. 다만, 이렇게 유용한 것을 배우는 것은 좋은데, 원래 하려고 했던 게임의 제작은 언제 시작할 수 있는지는 모르겠습니다.


반응형