재미있는 실감미디어

꿈꾸는대로 만들어집니다.

유니티기초[유니티 기초] 30_C# 스크립트 - 게임UI만들기_타이틀과 엔딩 스크립트

김혜영
2020-04-21
조회수 1649

유튜브 30 - https://youtu.be/as-SPlTl5uM


안녕하세요^^ 지난 시간에 우리는 게임 타이틀과 엔딩까지 아주~~~ 간단히 만들었습니다. 오늘은 스크립트를 통해 제어하는 방법을 배우도록 합니다.


오늘 배울 내용은 다음과 같습니다.

  • 빌드 셋팅에 씬 등록하기
  • 시작하기 버튼을 통해 게임 시작하기
  • 시간이 종료되면 게임이 종료되고 엔딩화면으로 이동하기
  • 다시하기 버튼을 통해 게임 다시 시작하기
  • 함수 최적화하기(스크립트 최적화)


먼저 각 씬들이 작동되려면 빌드 셋팅에 씬을 등록해야 합니다. 


다음과 같이 StartGame 이라는 이름으로 스크립트를 추가하고, 스크립트를 작성합니다. 이 내용은 3강에서 UI 제어하는 부분을 다루었습니다. 어렵지 않을 것입니다. 


다음과 같이 시작하기 버튼에 클릭 이벤트를 등록합니다. 물론 시작하기 버튼에는 StartGame 스크립트가 컴포넌트로 등록 되어 있어야 겠지요?


게임화면의 GameManager 스크립트에도 게임이 종료되면 엔딩으로 넘어가도록 스크립트를 수정합니다.


엔딩에 있는 다시하기 버튼도 시작하기 버튼과 동일하게 셋팅해줍니다.


타이틀씬의 시작하기 버튼과 마찬가지로 셋팅하면 됩니다. 참 쉽죠? 3강을 이해하고 왔다면 그리 어렵지 않을거에요. 헷갈린다면 꼭 유튜브 영상을 확인하세요~


여기까지 진행하면 버튼들은 잘 작동합니다. 여기저 만족할 수도 있지만… 가만히 스크립트를 보면 중복되는 부분이 많습니다. 현재 코드야 그리 길지 않으니 별 상관없지만… 만약 이러한 중복 코드가 길다면.. 수정하려면 둘다 해야 하고.. 여간 귀찮은 일이 아닐수 없습니다. 코드의 최적화를 통해 유지, 보수, 수정이 편하도록 수정해보도록 하겠습니다. 다음과 같이 goScene이라는 스크립트를 만들어 줍니다. goScene에서 goScene( ) 메서드는 SceneName이라는 씬으로 이동하는 코드이며, 여기서 SceneName은 아직 할당되지 않았습니다.


이제 기존 시작하기에 있던 코드는 버리고 goScene을 추가한 후, 다음과 같이 SceneName에는 이동할 Main 을 할당합니다. 이벤트도 수정하여 줍니다. 헷갈리다면 유튜브 영상을 보면 쉽습니다.


다시하기 버튼에도 동일하게 수정하여 줍니다. ^^ 참 쉽죠? 안쉽다면… 정말 유튜브 영상을 보세요^^ 정말 쉬워요^^


잘 완성되었다면 다음과 같이 스크립트는 단 두개로 기능은 전과 같이 작동됩니다. 와우^^ 이래서 클래스를 용도별로 만들어 독립적으로 사용하면 편리한 것입니다. 다른 부분은 매개인자로 구별해서 사용하는 것이지요^^ 요 개념이 익숙해지면… 정말 코드를 최적화해서 작성할 수 있습니다.


오늘도 수고하셨습니다. 쇼생크의 작은 망치가 벽을 허물듯이…작은 낙숫물이 바위를 뚫듯이.. 조금 부족하고.. 조금 이해가 안되고.. 어렵더라도… 꾸준히 하면 결국은 목적지에 도달해 있을 것입니다. 중요한 것은… 꾸준함이겠지요.. 그 꾸준함이, 성실함이 재능, 능력이라는 말도 하긴 합니다. 꾸준할 수 있도록… 성실할 수 있도록 해주는 강한 동기부여가 중요한 듯 합니다. 저는.. 진작에 공부하다 중도포기 했을텐데… 요렇게 100일의 카카오프로젝트를 하니.. 하기 귀찮아도.. 하게 되고.. 공부하기 싫어도 하게 됩니다. ^^ 여러분은 어떠신가요? 화이팅입니다. 다음 시간에 또 만나기를 기대합니다. ^^


1 0

매일 한알의 마늘처럼 하나의 미션 수행!

동굴뛰쳐나가지 않고 매일 하나의 마늘을 먹기!!!

게임이나 VR, AR 에 유니티가 언리얼과 같이 많이 사용된다고 듣긴 했지만 나와는 관계없는 프로그램 같았습니다. 그러다가 우연한 계기로 게임 디자인을 하면서 유니티에 관심이 생겼습니다. 


자바스크립트가 유니티와 연동된다고 하니, 유니티가 매력있게 다가왔습니다. 유니티까지 활용한다면 작업 영역의 확장 뿐만 아니라 재미있는 콘텐츠를 제작할수 있겠다는 가능성이 보였습니다.


내가 기획하고, 디자인하고, 개발까지 하여 하나의 게임 앱을 만들수가 있다니! 얼마나 달콤한 유혹인지 모릅니다. 물론 수 많은 산을 넘고 에러를 넘고, 오류를 넘어야 하는 것은 각오를 해야 합니다. 그럼에도 불구하고 무척 매력적 입니다. 인고의 시간을 지나면 나는 상상력을 구현할수 있는 하나의 툴을, 도구를 장착할수 있는 것입니다. 아!이!언!맨! 처럼 말이지요!!!


카카오프로젝트 100은 게으른 저를 동기부여해 줍니다. 당장 통장에 계좌가 찍히는 일은 열심히 하게 되지만, 새로운것을 공부할 때는 의지가 참 약해지고 용두사미가 됩니다. 그런 의미에서 카카오프로젝트 100은 100일동안 의지를 불태울수 있는 작은 동기가 됩니다. 카카오프로젝트 시즌1에서는 자바스크립트 기초를 정리했습니다. 

시즌 2에서는 새로운 공부를 도전합니다. 바로 유!니!티!


여러분 생각은 어떤가요?

top