재미있는 실감미디어

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

유니티기초[유니티 기초] 28_C# 스크립트 - Time.deltaTime_타이머만들기

김혜영
2020-04-17
조회수 5704

유튜브 28 - https://youtu.be/EOLaJLcqTSQ


오늘은 지난 시간에 배운 deltaTime 속성을 이용하여 게임의 타이머, 즉 제한시간을 만들어 보겠습니다. 제한시간이 되면 게임이 종료되어야 겠지요?


오늘 배울 내용입니다. 좀 많은것 같지만… 그동안 배운것들입니다. ^^ 

  • UI - Text 오브젝트 만들기
  • 폰트 임포트하고, 폴더 정리하기
  • 텍스트 오브젝트 게임화면에 배치하기
  • GameManager 스크립트와 오브젝트 만들기
  • GameManager 스크립트 인스턴스화하기
  • GameManager 스크립트 작성하기
  • GameManager 텍스트 오브젝트 설정하기
  • GameManager 스크립트 - 타이머 감소하고 게임 종료하기
  • GameManager 스크립트 수정 - 게임 종료 만들기


먼저 게임의 제한시간을 보여줄 텍스트 오브젝트를 만들어 줍니다. Hierachy 의 + 를 클릭하여 UI - Text 오브젝트를 클릭하여 텍스트 오브젝트를 생성합니다. 여기서는 이름을 변경하지 않았지만 뒤에가서는 이름을 TimeText로 변경할 것입니다. 미리 변경하셔도 좋아요~


시간을 출력하지만 좀 그럴듯하게 보이면 더 좋겠지요? 폰트를 임포트하여 적용하도록 하겠습니다. 하다보니 폴더를 정리하지 않았더군요. 폴더 정리를 깔끔하게 하면 작업이 좀 더 편할 듯 합니다. ^^ 폰트 가져오는 것은 앞과정에서 배웠습니다. 드래그하여 프로젝트 창에 등록하면 됩니다.


이제 텍스트 오브젝트를 게임의 화면에 적절하게 배치하도록 합니다. 텍스트 오브젝트를 더블클릭하면 화면이 오브젝트 중심으로 보입니다. 인스펙터창의 설정을 통해 게임화면의 왼쪽 상단에 자리잡도록 합니다. 인스펙터창의 설정값들을 참고하시면 됩니다. 잘 안될 경우 유튜브를 참고하여 주세요^^


이제 시간을 텍스트 오브젝트에 보여지도록 하겠습니다. 그 전에 게임을 관장하는 스크립트와 오브젝트를 생성하도록 합니다. GameManager라는 이름으로 스크립트를 생성하고,빈 오브젝트를 생성하여 GameManager라는 이름으로 변경합니다. 게임을 관장하는 스크립트와 오브젝트입니다. 


다음과 같이 GameManager 오브젝트에 GameManager 스크립트를 어태치합니다. 즉 GameManager 스크립트가 인스턴스화되었습니다.


GameManager 스크립트를 다음과 같이 작성합니다. 스크립트에 대한 설명은 유튜브에서 자세하게 다루니, 이해가 안된다면 영상을 참고하세요^^


다음과 같이 GameManager 인스펙터창에 변수를 확인할 수 있습니다. GameTimeText 변수에는 TimeText로 설정합니다. TimeText 오브젝트를 드래그하면 됩니다. 이와 같은 단계가 복잡하다면 꼭 유튜브 영상의 설명을 들어보세요^^ 쉽게 풀어 설명했습니다. 문자로 적자니.. 좀 어렵습니다. 유니티 화면에서 설명이 좀 더 쉬워 이 부분은 영상을 꼭 참고하세요~


GameTime을 private 로 선언하여 밖에서 수정되지 않도록 합니다. GameTime을 11로 선언하고 다음의 코드와 같이 시간이 지날수록 값을 빼주어 감소하는 타이머로 변경해 봅니다.  if 조건문을 통해 GameTime이 0이 되면 게임 종료 글자를 출력하도록 합니다. 


좀 더 수정해 보면 다음과 같은 코드로 완성할 수 있습니다. 게임이 종료되면 더이상 타이머의 숫자가 감소하지 않고, 게임 종료라는 글자를 출력하도록 합니다. 이제 실제적으로 엔딩화면으로 넘어가는 것을 만들어야 합니다. 


이제 앞으로 게임 타이틀 화면과 엔딩 화면을 만들어야 하고, 하늘에서 랜덤하게 떨어지는 돌, 또는 음식을 만들어야 합니다. 돌이라면 피하는 게임으로 만들고, 음식이라면 먹는 게임을 만들면 되겠지요? 둘다 해도 좋습니다. 앞으로 이 부분을 다 배우면 간단한 게임을 스스로 만들 수 있게 되는 것입니다. 책만 보지 말고, 강의만 듣지 말고 스스로 꼭 해보세요^^. 생각해서 스스로 꼭 해야 실력이 향상되고, 자기것이 됩니다. 오늘도 수고 많았습니다. ^^



1 0

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

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

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


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


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


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

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


여러분 생각은 어떤가요?

top