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

유니티5 독학하기 그 85번째 걸음-게임플레이 중 수집한 동전의 상점 연동

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

안녕하세요?


이번 포스팅에서는 게임 플레이 중에 수집한 동전을 상점에서 까지 연동하는 것을 시도하였고, 그 성공한 것에 대해서 포스팅을 하고자 합니다.



먼저 GameOverResult.cs라는 스크립트를 찾아서 들어가 보도록 합니다.



일단 GameManager.cs에 관련된 변수가 있다는 것을 알 수 있습니다.



실제로 CollectdCoin()이라는 메소드의 안에 collectedCoins라는 변수가 있다는 것을 알 수 있습니다.



그리고 나서 PlayerController.cs 스크립트를 찾아가 보도록 합니다.




Kill()메소드에서 위 스크린샷과 같이 int형 변수를 먼저 선언을 하도록 하고, 그 다음에 이 변수를 PlayerPrefs안에 집어 넣도록 명령을 내리도록 합니다.



그런데 어디서 문제가 생겼습니다. 여기서 destroy라는 명령이 문제가 된 듯 하니, 이를 바꾸고자 합니다.



우선 CircleCollider2D를 사용불능으로 먼저 만들어 놓도록 합니다.



그리고 나서 위 스크린샷의 메소드처럼 Rigidbody 2D에서 물체의 질량을 0.0f로 만들어 주도록 합니다.




그리고 계속해서 떨어지는 것 때문에 gravitySclae까지 0으로 만들어 주도록 합니다.



하지만 질량이 완전히 0으로 설정이 되지 않는 문제점이 있어서 계속해서 아래로 제이크가 떨어지는 것을 막을 수는 없었습니다. 그래서 하는 수 없이 이건 여기까지만 하도록 하고, 다음의 작업을 이어서 나가도록 해 보았습니다.



먼저 게임오버 뷰에 있는 coinslabel 게임 오브젝트를 복사하도록 합니다.



그리고 Shop_Scene씬을 넘어가서, Shop_canvas에 게임 오브젝트를 붙여넣기 해 보도록 합니다. 그렇게 해서 위 스크린샷처럼 상점의 왼쪽 상단에 동전의 갯수가 나올 수 있도록 해 봅니다.




그리고 이 작업을 위해서 ShopManager.cs 스크립트를 찾아서 들어가도록 합니다.



먼저 using UnityEngine.UI;를 먼저 첫 머리에 선언을 하도록 하고, text변수와 int변수를 선언해 주도록 합니다. 그리고 이게 언제나 클릭하면 바뀌어야 하니까, Update()메소드에 텍스트를 무엇으로 할 것인지 지정해 주도록 합니다.



먼저 시험적인 게임으로 동전을 3개 모았습니다. 이제 그 갯수를 게임오버 뷰에서 볼 수 있습니다.



그리고 나서, 상점에 들어가 보니, 이 동전의 갯수가 반영되어 있는 것을 볼 수 있습니다. 이렇게 해서 상점씬과 게임씬의 동전 갯수가 연동되는 것을 어떻게 할 수 있다는 것을 알 수 있었으며, 이제 실험적으로 어떻게 해서 상점에서 동전이 소모될 수 있는 방법을 만들어 보는 것 입니다. 그리고 나서 소모된 동전 만큼 주인공인 제이크를 업그레이드 시킬 수 있도록 해 보겠습니다.

반응형