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

유니티5 독학하기 그 81번째 걸음-종료 버튼의 구현

by 인터넷떠돌이 2018. 9. 4.
반응형

안녕하세요?


이번 포스팅에서는 이 연습용 게임에 종료버튼을 추가하고자 합니다. 그것도 그냥 버튼만 딸랑있고, 종료를 하는 것이 아니라, 특정한 조건에서만 특정한 화면에서 이 버튼이 나오도록 하는 것 입니다.



먼저 유니티5에서 메뉴 캔버스를 열도록 합니다.



계속해서 oncePlayed라는 변수가 1.0f가 되었기 때문에 처음 게임을 시작해도 Run Again이 뜨는 것을 볼 수 있습니다.



먼저 Kenney.nl에서 다운로드 받은 버튼의 색상이 너무 연하다고 생각해서, Gimp(김프)에서 색>Colorize라는 메뉴를 이용해서 색상을 바꾸도록 합니다.



이렇게 해서 새로운 타입의 버튼 스프라이트를 만들어 주도록 합니다.




이렇게 해서 기존의 버튼을 하나 복사해서 ExitButton이라는 게임 오브젝트를 만들어 주도록 합니다.



이렇게 해서 글자의 색상등 디자인이 달라진 종료 버튼이 나왔 습니다.



다음으로는 GameOverCanvas에도 종료 버튼을 추가를 해 주도록 합니다.



그리고 버튼이 추가가 되었으니, 작동하는 로직이 필요합니다. 이를 위해서 GameManager.cs를 찾아가도록 합니다.




일단 스크립트상에서 exitButton이라는 변수를 선언해 주도록 합니다.



그리고 GameManager.cs에서 ExitGame()이라는 메서드를 위 스크린샷과 같이 만들어 주도록 합니다.



그리고 유니티5로 돌아와서 GameManager를 계층뷰에서 선택해서



기존의 ExitButton을 추가해 주도록 합니다.




그리고 ExitButton의 OnClick()에 위 스크린샷과 같이 메소드를 지정해 주도록 합니다.



그런데 구글 홈페이지만 익스플로러에서 열리기만 하고 유니티5 상에서 종료가 되지 않아서, 일단 Application.OpenURL이라는 명령어 부분은 주석처리를 해서 더 이상 특정 사이트를 열지 못하게 만들었습니다.



그래도 유니티5상에서 종료가 되지 않아서, 하는 수 없이 위 스크린샷과 같은 #if문을 추가했습니다.



이제서야 유니티5상에서 종료가 되었고, 다시 시작하면 Play버튼이 나오는 것을 확인할 수 있었습니다. 여기서 중요한 것은 이 Exit버튼을 누르면, Playerprefbs에 저장이 되어 있는 oncePlayed라는 변수를 0.0f로 바꾸어 준다는 것 입니다. 이 기능이 있기에 Exit버튼을 만들었고, 이 기능이 제대로 동작을 하고 있습니다. 이제 점점 더 게임답게 만들기 위해서 더 많은 요소를 구현해서 넣어야 겠습니다.

반응형