재미있는 실감미디어

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

유니티기초[유니티 기초] 36_충돌 여부에 따라 게임 점수 증감하기

김혜영
2020-04-26
조회수 1792

유튜브 36 - https://youtu.be/au1QKO8R-ZU


안녕하세요~ 오늘은 드디어 충돌 판정을 통해 게임 스코어를 증가, 감소시키는 스크립트를 완성해보겠습니다.


오늘 배울 내용은 다음과 같습니다. 좀 많아 보이지만.. 하다보면 왜 이 과정이 필요한지 이해가 될거에요^^

  • 게임 스코어를 감소시킬 게임 오브젝트 만들기
  • PlayerController 충돌 판정을 통한 게임 스코어 감소하기
  • 게임 스코어를 증가시킬 게임 오브젝트 만들기
  • 게임 오브젝트에 콜라이더와 리지드바디 적용하기
  • PlayerController 충돌 판정을 통한 게임 스코어 증가하기
  • 게임 스코어 초기화하고, 게임 플레이하기
  • 게임 스코어가 0일때만 감소하도록 수정하기


게임 스코어를 감소시키는 오브젝트는 지난 시간에 만든 것을 활용하겠습니다. 차이를 두기 위해 다음과 같이 색변경을 해줍니다. 


기존의 코드를 다음과 같이 수정합니다. 충돌하면 GameScore 변수를 1 감소하는 코드입니다.


테스트를 통해 점수가 감소하는 것을 확인합니다.


이제 증가시킬 오브젝트가 필요합니다. 기존의 소스에서 코인을 찾아 가져오도록 합니다.(모르겠으면 영상을 참고하세요~)


이때 주의해야 할 것이… 폴더 정리시 주의해야 합니다. 전 잘못 정리해서 기존의 캐릭터가 날라갔습니다. 폴더 위치와 이름이 오버랩되면서요.. 조심하시면 됩니다. ㅜ ㅜ 전 다시 만들었어요.. 코인이미지는 태그를 설정합니다.


코인이미지가 충돌과 물리적 성질을 가질수 있도록 콜라이더와 리지드바디를 추가해줍니다.


다음 과 같이 코드를 완성합니다. 이제 코인에 충돌하면 점수가 증가합니다.


게임 스코어를 0부터 시작하는것이 좋겠지요?


게임 스코어는 public으로 선언되어 있으므로 기존 값이 들어가 있으니, 인스펙터창도 같이 초기화 해야 합니다. 그런데, 이렇게 초기화를 해야하는 것은 영 불편합니다.


이렇게 Start( ) 메서드에서 초기화하면 인스펙터 창과 상관없이 게임이 시작되며 변수 값이 초기화 됩니다. 이제 왜  Start( ) 메서드에서 변수 값을 초기화해야 하는지 알겠지요?


코인이 0일때는 감소되지 않도록 다음과 같이 코드를 수정해줍니다.


이제 플레이 모드를 통해 확인해봅니다. 초간단이긴 하지만.. 게임 비스무레한것이 완성된것 같습니다. 이제 앞으로 무엇을 추가해야 할까요? 적군이 움직이면서… 코인은 아래에서 위로 떨어지고 사라져야 하지 않을까요? ㅎㅎㅎ 그리고, 마지막으로 이 게임이 모바일 게임에서 작동되도록 수정되어야 할 것입니다. 좀 더 부가적으로는 게임 배경음악도 있고, 충돌시 적절한 효과음도 나오고.. 게임을 멋지게 꾸며주어야 하겠지요? 하나씩 앞으로 추가하도록 합니다.^^


오늘도 수고 많았습니다. 35강까지 같이 하시는 분들은… 끝까지 100일 채웁시다^^ 그럼 다음 시간에 만나요~~



2 0

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

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

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


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


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


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

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


여러분 생각은 어떤가요?

top