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

유니티5 독학하기 그 87번째 걸음-상점에서 부스터 업그레이드 구입하기

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

안녕하세요?


상점씬에 동전을 모아서 제대로 반영하는 것 까지는 했는데, 이제 동전을 모았으니, 이 동전을 소모해서 업그레이드를 구입하는 것에 의의가 있기 때문에, 이번 포스팅에서는 부스터 업그레이드를 구현하는 방법을 포스팅 하고자 합니다.



먼저 PlayerController.cs 스크립트를 찾아 가도록 합니다.



그리고 새로운 광역 변수를 하나 선언해 주도록 합니다.



그리고 나서, FixedUpdate()메소드 아래에 있는 PlayerSpeed()라는 세로드에서 위 스크린샷처럼 기존의 속도에다가 새로 선언을 해준 광역변수와 더하기를 해 주도록 해 줍니다.



그리고 나서는 위 스크린샷처럼 스크립트가 시작하자 마자 광역변수가 0.0f이면 안되기 때문에, 위 스크린샷처럼 PlayerPrefs에 저장된 값을 가지고 오도록 명령을 내리도록 합니다.



그리고 나서 다음으로는 상점씬에 그냥 Buy버튼만 있으면 알기 어렵기 때문에, 일단 보면 알 수 있도록 아이콘을 추가 하도록 해 줍니다.




일단 Canvas에 위 스크린샷처럼 로켓모양 아이콘을 추가해 주도록 합니다.



그리고 나서 로직을 짜야 하기 때문에 위 스크린샷처럼 ShopManager.cs 스크립트를 찾아가도록 합니다.



그리고 나서 이전에 있던 ReduceCash()라는 메소드를 위 스크린샷처럼 PurchaseBoostUpgrade()라는 메소드로 바꾸어 주도록 합니다. 여기서는 지역변수인 price를 주어서 업그레이드를 살때마다 더 필요한 돈의 액수가 높아 지도록 설정을 해 주도록 합니다.



그리고 나서 이전에 만들어 놓았던 Buy버튼을 찾아가도록 합니다.



그리고 나서 위 스크린샷처럼 PurchaseBoostUpgrade()메소드를 버튼에 지정해 주도록 합니다.




그리고 나서 위 스크린샷처럼 충분한 동전이 있으면, upgrade_Boost라는 값에 구입한 내용이 반영되어서 증가가 되도록 해 줍니다. 이렇게 하는 것으로 코드를 더 다듭어 줍니다.



일단 먼저 게임을 시작해서 동전을 수집해서 게임오버가 되도록 해 줍니다.



그리고 상점에서 업그레이드를 구입해 주도록 합니다.



그런데 계속 적용이 안되는 상황이 나왔는데, 알고보니 int라고 해야 하는 항목을 float이라고 해서 나왔는 에러입니다.



그리고 나서 업레이드가 된 다음에, 부스터를 켜면, 이전에 스피드가 9라고 떴는데, 이제는 14라고 증가된 속도가 나오는 것을 볼 수 있습니다.




그리고 나서 이제 이 업그레이드를 리셋하는 버튼을 만들어 줄 필요가 있어서 Shop_Scene에서 위 스크린샷처럼 새로운 게임 오브젝트를 생성하도록 해 줍니다.



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



여기서 버튼을 누르면 먼저 부스터의 업그레이드 사항을 0으로 만들도록 해 줍니다.



그리고 나서 버튼에서는 위 스크린샷처럼 메소드를 지정해 주도록 합니다.



그리고 게임을 유니티5 상에서 실행시켰을 때, 위 스크린샷처럼 다시 부스터의 속도가 9로 돌아오는 것을 볼 수 있습니다. 이렇게 하는 것으로 간단하지만 업그레이드 사항을 만들어 주는데 성공했습니다. 다음으로는 이제 같은 발판이 계속되면 안되는 면이 있기에, 일정한 거리를 나아가면 발판이 달라지는 것을 만들어 보고자 합니다.

반응형